Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Implement __eq__ for CreateFolderParent class #1157

Copy link
Copy link
@supermitch

Description

@supermitch
Issue body actions

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 False

I 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.

Reactions are currently unavailable

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.