summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <bertjw@regeer.org>2015-02-07 03:31:33 -0700
committerBert JW Regeer <bertjw@regeer.org>2015-02-07 13:08:13 -0700
commit697213201fbd258e38eec92b80e0a1c631733ada (patch)
tree5cc37ea89ddb54ab1129379fc82c1869b75d9fb2
parentb17fa8b19da6e8272515588abbd2299f03bc2942 (diff)
downloadpyramid-697213201fbd258e38eec92b80e0a1c631733ada.tar.gz
pyramid-697213201fbd258e38eec92b80e0a1c631733ada.tar.bz2
pyramid-697213201fbd258e38eec92b80e0a1c631733ada.zip
Add extra tests for sub-classing Request
-rw-r--r--pyramid/tests/test_request.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/pyramid/tests/test_request.py b/pyramid/tests/test_request.py
index 48af98f59..7134e3869 100644
--- a/pyramid/tests/test_request.py
+++ b/pyramid/tests/test_request.py
@@ -435,6 +435,34 @@ class Test_call_app_with_subpath_as_path_info(unittest.TestCase):
self.assertEqual(request.environ['SCRIPT_NAME'], '/' + encoded)
self.assertEqual(request.environ['PATH_INFO'], '/' + encoded)
+class Test_subclassing_Request(unittest.TestCase):
+
+ def test_subclass(self):
+ from pyramid.request import Request
+ from zope.interface import providedBy, implementedBy
+
+ class RequestSub(Request):
+ pass
+
+ self.assertTrue(hasattr(Request, '__provides__'))
+ self.assertFalse(hasattr(RequestSub, '__provides__'))
+
+ def test_subclass_with_implementer(self):
+ from pyramid.interfaces import IRequest
+ from pyramid.request import Request
+ from zope.interface import providedBy, implementedBy, implementer
+
+ @implementer(IRequest)
+ class RequestSub(Request):
+ pass
+
+ self.assertTrue(hasattr(Request, '__provides__'))
+ self.assertTrue(hasattr(RequestSub, '__provides__'))
+
+ req = RequestSub({})
+ req._set_properties({'b': 'b'})
+ self.assertEqual(providedBy(req), implementedBy(RequestSub))
+
class DummyRequest:
def __init__(self, environ=None):
if environ is None: