Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python assert_has_调用失败,对象参数的属性顺序不同_Python_Python 3.x_Python 3.6_Pytest_Python Unittest - Fatal编程技术网

Python assert_has_调用失败,对象参数的属性顺序不同

Python assert_has_调用失败,对象参数的属性顺序不同,python,python-3.x,python-3.6,pytest,python-unittest,Python,Python 3.x,Python 3.6,Pytest,Python Unittest,我有这样的主张- 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

我有这样的主张-

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\u有\u调用
断言失败,错误为-

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)>)]
应为:[调用(param2=,param1=),
调用(param2=,param1=)]
实际:
[调用(param2=,param1=),
调用(param2=,param1=)]

我看到的唯一区别是param1对象的属性顺序在预期和实际中不同。但对象的属性值是相同的。为什么会导致测试失败?

在shell或某处进行测试
SomeType(a=1,b=2,c=3)==SomeType(a=1,b=2,c=3)
。也许
SomeType
可能需要实现
\uuuuueq\uuuuuu
@jamylak yes,返回true。还有
SomeType(a=1,b=2,c=3)==SomeType(b=2,a=1,c=3)
在shell或某处测试
SomeType(a=1,b=2,c=3)
。也许
SomeType
可能需要实现
\uuuuueq\uuuuuu
@jamylak yes,返回true。还有
SomeType(a=1,b=2,c=3)==SomeType(b=2,a=1,c=3)