все. Недавно я перешел с Python 2 на 3.5.1, и там появилась функция утверждения, которую я не могу переписать.
def assertEqualUnordered(self, data1, data2):
"""
compare that data are similar
i.e.:
[d1, d2] == [d2, d1]
or
{'a': [d1, d2]} == {'a': [d2, d1]}
or
[{'a': [d1, d2]}, {'b': [d3, d4]}] == [{'b': [d4, d3]}, {'a': [d2, d1]}]
"""
if isinstance(data1, list) or isinstance(data1, tuple):
self.assertEqual(len(data1), len(data2))
for d1, d2 in zip(sorted(data1), sorted(data2)):
self.assertEqualUnordered(d1, d2)
elif isinstance(data1, dict):
data1_keys = sorted(data1.keys())
data2_keys = sorted(data2.keys())
self.assertListEqual(data1_keys, data2_keys)
for key in data1_keys:
self.assertEqualUnordered(data1[key], data2[key])
else:
self.assertEqual(data1, data2)
В целом этот код работает нормально, но если d1 и d2 — дикты, то у меня получилось:
TypeError: unorderable types: dict() < dict()
Как я могу переписать его для работы в py3k?
РЕДАКТИРОВАТЬ 1:
Пример упрощенного кода:
def assertEqualUnordered(data1, data2):
assert len(data1) == len(data2)
for d1, d2 in zip(sorted(data1), sorted(data2)):
assert d1 == d2
data1 = [{'a': 'a'}, {'b': 'b'}]
data2 = [{'b': 'b'}, {'a': 'a'}]
assertEqualUnordered(data1, data2)
Подробнее здесь: https://stackoverflow.com/questions/369 ... hout-order
Как утвердить два списка с диктатами без порядка? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу утвердить два ProductDetailsList, которые хранятся в списке объектов? [закрыто]
Anonymous » » в форуме JAVA - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Я не могу утвердить или отменить заказ, если в мою базу данных добавлен только один заказ.
Anonymous » » в форуме Php - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Утвердить, что при запуске теста конечной точки API вызывается определенный метод.
Anonymous » » в форуме Php - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Утвердить, что при запуске теста конечной точки API вызывается определенный метод.
Anonymous » » в форуме Php - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-