assertEquals
просто делегирует ==
, который может быть переопределен каждым типом.
Однако нет ясности в том, важен ли порядок и для элементов списка?
Это потому, что он делегирован самим элементам списка. list.__eq__
просто проверяет, имеют ли оба списка одинаковую длину и имеют ли они одинаковые элементы в одном и том же месте, используя ==
. То, как ==
ведет себя для каждого элемента, является решением элемента.
dict неупорядочен, поэтому assertEqual не проверяет порядок выбора dict внутри списка?
Правильно. равенство dict просто проверяет, что в dicts одинаковые пары (ключ, значение), его не волнует порядок. То же самое для равенства множеств.
А как насчет кортежа внутри списка?
Равенство кортежей такое же, как и равенство списков, оно заботится о порядке.
Где я могу найти, как это работает?
Документация каждого отдельного типа, который я бы угадал.