-
Notifications
You must be signed in to change notification settings - Fork 218
Open
Labels
Description
Is your feature request related to a problem? Please describe.
I'm trying to use unittest to check call args:
def test_create_folder_exists(box: BoxClient):
with patch.object(box.folders, 'create_folder') as mock_create:
mock_create.side_effect = [
BoxAPIError(RequestInfo('POST', 'url', {}, {}), ResponseInfo(409, {}), '409'),
'FolderFull',
]
new_box.create_folder(
box,
PARENT_FOLDER_ID,
'test_folder_829',
increment=True,
)
assert mock_create.call_count == 2
mock_create.assert_any_call(
'test_folder_829 (1)',
CreateFolderParent(PARENT_FOLDER_ID), # THIS PART IS FAILING
)(I'm trying to check that my code increments folder names on collisions, like name (1), name (2), etc.)
Unfortunately, the assertion does NOT pass, because CreateFolderParent doesn't implement __eq__:
In [9]: from box_sdk_gen import CreateFolderParent
In [10]: a = CreateFolderParent('12')
In [11]: b = CreateFolderParent('12')
In [12]: a == b
Out[12]: False
Describe the solution you'd like
Adding basic equality check makes my tests pass:
def __eq__(self, other):
if isinstance(other, CreateFolderParent):
return self.id == other.id
return FalseI guess it would be nice to implement this for all these "arg" classes in the library, as there are lots of them.
Describe alternatives you've considered
I can fix my current issues with deep assert equal of the create_folder_parent.id values.