Mentre scrivevo alcuni test per la mia classe, ho riscontrato un problema semplice e interessante. Vorrei assegnare a DictEqual due dizionari contenenti una lista. Ma questo liste non possono essere ordinati in uno stesso modo -> che si traduce in test fallitoPython unittest - Asserting dictionary with lists
Esempio:
def test_myobject_export_into_dictionary(self):
obj = MyObject()
resulting_dictionary = {
'state': 2347,
'neighbours': [1,2,3]
}
self.assertDictEqual(resulting_dictionary, obj.exportToDict())
questa strategia dovesse fallire di volta in volta, a seconda ordine degli elementi in lista
FAIL: test_myobject_export_into_dictionary
------------------------------------
- 'neighbours': [1,2,3],
+ 'neighbours': [1,3,2],
Qualche idea su come affermarlo in modo semplice?
Stavo pensando di utilizzare set
anziché list
o gli elenchi di ordinamento prima del confronto.
Se si verificano molti casi di questo problema, si consiglia di controllare la risposta [@Jon Reid] (http://stackoverflow.com/a/14493005/881224). – Droogans