unittest.TestCase
имеет assertCountEqual
method (assertItemsEqual
в Python 2, который, возможно, лучшее название), который сравнивает два итерируемых и проверяет, что они содержат одинаковое количество одних и тех же объектов, без учета их заказ.ли pytest есть assertItemsEqual/assertCountEqual эквивалент
Обеспечивает ли pytest нечто подобное? Все очевидные альтернативы (например, звонки set(x)
, или Counter(list(x))
с каждой стороны, как указано в документации) не работают, потому что вещи, которые я сравниваю, это списки словарей, а словари не являются хешируемыми.
Почему «сортировка» не работает? Это не требует ничего хешируемого. –
Я согласен с @ TheCompiler. Единственное, что вам нужно, это указать параметр «ключ» для сравнения словарей: http://stackoverflow.com/questions/72899/how-do-i-sort-a-list-of-dictionaries-by-values-of-the -dictionary-в-питон. –
@ TheCompiler Нет, вы правы, но для этого нужны вещи, которые вы сортируете, чтобы быть сопоставимыми с>, которые dicts нет. –