facebook / facebook/TestSlide

Prevent patch_attribute from patching instance attributes at classes

Open
#224 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.