summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <bertjw@regeer.org>2015-02-07 12:48:30 -0700
committerBert JW Regeer <bertjw@regeer.org>2015-02-07 13:08:13 -0700
commitc7c02f44492da19d848d66556c2c13b9c79ee7ee (patch)
tree9c90c9289fb306ae75a516dc7bdd817e761c6c9a
parent942e7dcaac03f8910ecef19bb4c610cf6e79ac76 (diff)
downloadpyramid-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.py14
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):