Python assert_has_calls терпит неудачу с различным порядком атрибутов параметра объекта - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть подобное утверждение -

obj_instance_1 = SomeType(a=1,b=2,c=3)
//invoke the test function
mock_calls = [
            mock.call(param1=obj_instance_1, param2=mocked_obj),
            mock.call(param1=obj_instance_1, param2=mocked_obj),
        ]
mock_instance.assert_has_calls(mock_calls)

assert_has_calls утверждение не выполняется с ошибкой -

Expected: [call(param2=<MagicMock name='SomeName' id='140133686336928'>, param1=<SomeType(a=1,b=2,c=3)>),
call(param2=<MagicMock name='SomeName' id='140133686336928'>, param1=<SomeType(a=1,b=2,c=3)>)]
Actual: 
[call(param2=<MagicMock name='SomeName' id='140133686336928'>, param1=<SomeType(b=2,a=1,c=3)>),
call(param2=<MagicMock name='SomeName' id='140133686336928'>, param1=<SomeType(b=2,a=1,c=3)>)]

Единственное отличие, которое я вижу, это порядок атрибутов объекта param1 отличаются в ожидаемых и фактических. Но значения атрибутов объекта совпадают. Почему это может привести к провалу теста?

...