box / box/box-python-sdk

Implement `__eq__` for CreateFolderParent class

Đang mở
#1,157 1 bình luận 0 reaction 6 người được giao Được @mwwoda nhận Xem trên GitHub
enhancement
Ngôn ngữ chính
Python
Star
459
Fork
223
Merge trung bình
8 giờ 57 phút
Pull request đã merge (30 ngày)
13

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.