Essayer d'affirmer que deux dictionnaires dont le contenu est imbriqué sont égaux (l'ordre n'a pas d'importance) avec pytest. Quelle est la façon pythonique de faire cela?
Je suppose qu’un simple test d’égalité d’assertion devrait suffire
>>> 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
>>> d2
>>> 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
assert all(v == actual_dict[k] for k,v expected_dict.items()) and len(expected_dict) == len(actual_dict)
votre question n'est pas très précise mais avec ce que je peux comprendre, vous essayez soit de vérifier si la longueur est la même
a = [1,5,3,6,3,2,4]
b = [5,3,2,1,3,5,3]
if (len(a) == len(b)):
print True
else:
print false
ou en vérifiant si les valeurs de la liste sont les mêmes
import collections
compare = lambda x, y: collections.Counter(x) == collections.Counter(y)
compare([1,2,3], [1,2,3,3])
print compare #answer would be false
compare([1,2,3], [1,2,3])
print compare #answer would be true
mais pour les dictionnaires, vous pouvez également utiliser
x = dict(a=1, b=2)
y = dict(a=2, b=2)
if(x == y):
print True
else:
print False