diff options
| author | Bert JW Regeer <bertjw@regeer.org> | 2015-02-07 03:31:33 -0700 |
|---|---|---|
| committer | Bert JW Regeer <bertjw@regeer.org> | 2015-02-07 13:08:13 -0700 |
| commit | 697213201fbd258e38eec92b80e0a1c631733ada (patch) | |
| tree | 5cc37ea89ddb54ab1129379fc82c1869b75d9fb2 | |
| parent | b17fa8b19da6e8272515588abbd2299f03bc2942 (diff) | |
| download | pyramid-697213201fbd258e38eec92b80e0a1c631733ada.tar.gz pyramid-697213201fbd258e38eec92b80e0a1c631733ada.tar.bz2 pyramid-697213201fbd258e38eec92b80e0a1c631733ada.zip | |
Add extra tests for sub-classing Request
| -rw-r--r-- | pyramid/tests/test_request.py | 28 |
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: |
