diff options
| author | Bert JW Regeer <bertjw@regeer.org> | 2015-02-07 12:48:30 -0700 |
|---|---|---|
| committer | Bert JW Regeer <bertjw@regeer.org> | 2015-02-07 13:08:13 -0700 |
| commit | c7c02f44492da19d848d66556c2c13b9c79ee7ee (patch) | |
| tree | 9c90c9289fb306ae75a516dc7bdd817e761c6c9a | |
| parent | 942e7dcaac03f8910ecef19bb4c610cf6e79ac76 (diff) | |
| download | pyramid-c7c02f44492da19d848d66556c2c13b9c79ee7ee.tar.gz pyramid-c7c02f44492da19d848d66556c2c13b9c79ee7ee.tar.bz2 pyramid-c7c02f44492da19d848d66556c2c13b9c79ee7ee.zip | |
Add test that showcases failure
When _set_properties() is called before implementedBy or providedBy, the
new class that is generated does NOT conform to IRequest.
| -rw-r--r-- | pyramid/tests/test_request.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/pyramid/tests/test_request.py b/pyramid/tests/test_request.py index cf591eb36..1a7b1a106 100644 --- a/pyramid/tests/test_request.py +++ b/pyramid/tests/test_request.py @@ -479,6 +479,20 @@ class Test_subclassing_Request(unittest.TestCase): self.assertTrue(IRequest.providedBy(req)) self.assertTrue(IRequest.implementedBy(RequestSub)) + def test_subclass_mutate_before_providedBy(self): + from pyramid.interfaces import IRequest + from pyramid.request import Request + from zope.interface import providedBy, implementedBy, implementer + + class RequestSub(Request): + pass + + req = RequestSub({}) + req._set_properties({'b': 'b'}) + + self.assertTrue(IRequest.providedBy(req)) + self.assertTrue(IRequest.implementedBy(RequestSub)) + class DummyRequest: def __init__(self, environ=None): |
