Prevent patch_attribute from patching instance attributes at classes
Open
enhancement
patch_attribute
- Dominant language
- Python
- Stars
- 149
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
This:
```python
import testslide
class A:
def __inti__(self):
self.attr = 1
class TestA(testslide.TestCase):
def test_attr(self):
self.patch_attribute(A, "attr", "mock")
```
yields:
```
AttributeError: type object 'A' has no attribute 'attr'
```
However, patching instance attributes at classes should not be allowed. `mock_callable` already [prevents](https://github.com/facebookincubator/TestSlide/blob/master/testslide/mock_callable.py#L601-L607) that.
Let's make patch_attribute refuse to patch instance attributes at classes as well.
Probably a good idea to reuse logic from `mock_callable` to define if "is this good to patch?".
Contributor guide
Assessment
This issue has not been assessed yet.