summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorRoald de Vries <rdevries@thoughtworks.com>2016-11-29 17:47:07 +0100
committerRoald de Vries <rdevries@thoughtworks.com>2016-11-29 17:47:07 +0100
commit9b5d5a797c9f407183d1b9a6a2aea552a06c5ea1 (patch)
tree4d3ae165dd4ab2e10f2c8fe2c75bacb1ae31590f /service
parent798858c79c0b10565f42365c6cdbf7d0549d0a2e (diff)
make login resource part of the public root resource
Diffstat (limited to 'service')
-rw-r--r--service/pixelated/resources/root_resource.py7
-rw-r--r--service/test/unit/resources/test_root_resource.py17
2 files changed, 18 insertions, 6 deletions
diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py
index 0788ffb1..24d097f9 100644
--- a/service/pixelated/resources/root_resource.py
+++ b/service/pixelated/resources/root_resource.py
@@ -46,6 +46,10 @@ class PublicRootResource(BaseResource):
def __init__(self, services_factory):
BaseResource.__init__(self, services_factory)
+ def initialize(self, provider=None, disclaimer_banner=None, authenticator=None):
+ self.putChild(LoginResource.BASE_URL,
+ LoginResource(self._services_factory, provider, disclaimer_banner=disclaimer_banner, authenticator=authenticator))
+
class RootResource(PublicRootResource):
@@ -94,6 +98,7 @@ class RootResource(PublicRootResource):
return csrf_input and csrf_input == xsrf_token
def initialize(self, provider=None, disclaimer_banner=None, authenticator=None):
+ PublicRootResource.initialize(self, provider, disclaimer_banner, authenticator)
self.putChild('sandbox', SandboxResource(self._static_folder))
self.putChild('keys', KeysResource(self._services_factory))
self.putChild(AttachmentsResource.BASE_URL, AttachmentsResource(self._services_factory))
@@ -105,8 +110,6 @@ class RootResource(PublicRootResource):
self.putChild('feedback', FeedbackResource(self._services_factory))
self.putChild('user-settings', UserSettingsResource(self._services_factory))
self.putChild('users', UsersResource(self._services_factory))
- self.putChild(LoginResource.BASE_URL,
- LoginResource(self._services_factory, provider, disclaimer_banner=disclaimer_banner, authenticator=authenticator))
self.putChild(LogoutResource.BASE_URL, LogoutResource(self._services_factory))
self._inbox_resource.initialize()
diff --git a/service/test/unit/resources/test_root_resource.py b/service/test/unit/resources/test_root_resource.py
index 8d658d7e..06eaf1ad 100644
--- a/service/test/unit/resources/test_root_resource.py
+++ b/service/test/unit/resources/test_root_resource.py
@@ -19,7 +19,17 @@ from pixelated.resources.root_resource import InboxResource, PublicRootResource,
class TestPublicRootResource(unittest.TestCase):
- pass
+
+ def setUp(self):
+ self.public_root_resource = PublicRootResource(mock())
+ self.web = DummySite(self.public_root_resource)
+
+ def test_login_url_should_delegate_to_login_resource(self):
+ self.public_root_resource.initialize(provider=mock(), authenticator=mock())
+ request = DummyRequest(['login'])
+ request.addCookie = lambda key, value: 'stubbed'
+ child_resource = getChildForRequest(self.public_root_resource, request)
+ self.assertIsInstance(child_resource, LoginResource)
class TestRootResource(unittest.TestCase):
@@ -35,9 +45,8 @@ class TestRootResource(unittest.TestCase):
when(self.services_factory).services(ANY()).thenReturn(self.services)
self.mail_service.account_email = self.MAIL_ADDRESS
- root_resource = RootResource(self.services_factory)
- self.web = DummySite(root_resource)
- self.root_resource = root_resource
+ self.root_resource = RootResource(self.services_factory)
+ self.web = DummySite(self.root_resource)
def test_root_url_should_delegate_to_inbox(self):
request = DummyRequest([''])