How can you test that two dictionaries are equal with pytest in python

How can you test that two dictionaries are equal with pytest in python

Dont spend your time writing this logic yourself. Just use the functions provided by the default testing library unittest

from unittest import TestCase
TestCase().assertDictEqual(expected_dict, actual_dict)

pytests magic is clever enough. By writing

assert {a: {b: 2, c: {d: 4} } } == {a: {b: 2, c: {d: 4} } }

you will have a nested test on equality.

How can you test that two dictionaries are equal with pytest in python

I guess a simple assert equality test should be okay:

>>> d1 = {n: chr(n+65) for n in range(10)}
>>> d2 = {n: chr(n+65) for n in range(10)}
>>> d1 == d2
True
>>> l1 = [1, 2, 3]
>>> l2 = [1, 2, 3]
>>> d2[10] = l2
>>> d1[10] = l1
>>> d1 == d2
True
>>> class Example:
    stub_prop = None
>>> e1 = Example()
>>> e2 = Example()
>>> e2.stub_prop = 10
>>> e1.stub_prop = a
>>> d1[11] = e1
>>> d2[11] = e2
>>> d1 == d2
False

Leave a Reply

Your email address will not be published. Required fields are marked *