box / box/box-python-sdk

Implement `__eq__` for CreateFolderParent class

オープン
#1,157 コメント 1 件 リアクション 0 件 担当者 6 名 @mwwoda が担当を希望しています GitHub で見る
enhancement
主要言語
Python
スター
459
フォーク
223
平均マージ
8時間 57分
マージ済み PR(30日)
13

説明

### Is your feature request related to a problem? Please describe.

I'm trying to use unittest to check call args:

```python
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__`:

```ipython
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:

```python
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.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。