From 697213201fbd258e38eec92b80e0a1c631733ada Mon Sep 17 00:00:00 2001 From: Bert JW Regeer Date: Sat, 7 Feb 2015 03:31:33 -0700 Subject: Add extra tests for sub-classing Request --- pyramid/tests/test_request.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) 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: -- cgit v1.2.3