Skip to content

Commit

Permalink
added BrowserFactory
Browse files Browse the repository at this point in the history
  • Loading branch information
zopyx committed Oct 6, 2005
1 parent 2685c8c commit 1fbf340
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
14 changes: 14 additions & 0 deletions publicationfactories.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
from zope.app.publication.xmlrpc import XMLRPCPublication
from zope.app.publication.http import HTTPPublication
from zope.publisher.xmlrpc import XMLRPCRequest
from zope.app.publication.browser import BrowserPublication
from zope.publisher.http import HTTPRequest
from zope.publisher.browser import BrowserRequest

class SOAPFactory(object):

Expand Down Expand Up @@ -67,3 +69,15 @@ def getRequestPublication(self):
interfaces.IHTTPRequestFactory, default=HTTPRequest)
return request_class, HTTPPublication

class BrowserFactory(object):

implements(IRequestPublicationFactory)

def canHandle(self, environment):
return True

def getRequestPublication(self):
request_class = component.queryUtility(
interfaces.IBrowserRequestFactory, default=BrowserRequest)
return request_class, BrowserPublication

15 changes: 14 additions & 1 deletion tests/test_publicationfactories.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@
from zope.app.publication.xmlrpc import XMLRPCPublication
from zope.app.testing import ztapi
from zope.app.publication import interfaces
from zope.app.publication.publicationfactories import SOAPFactory, XMLRPCFactory, HTTPFactory
from zope.app.publication.publicationfactories import SOAPFactory, XMLRPCFactory, HTTPFactory, BrowserFactory
from zope.app.publication.soap import SOAPPublication
from zope.app.publication.browser import BrowserPublication

class DummyRequestFactory(object):
def __call__(self, input_stream, env):
Expand Down Expand Up @@ -93,6 +94,18 @@ def test_httpfactory(self):
self.assertEqual(isinstance(request, DummyRequestFactory), True)
self.assertEqual(publication, HTTPPublication)

def test_browserfactory(self):
browserrequestfactory = DummyRequestFactory()
interface.directlyProvides(
browserrequestfactory, interfaces.IBrowserRequestFactory)
component.provideUtility(browserrequestfactory)
env = self.__env
factory = BrowserFactory()
self.assertEqual(factory.canHandle(env), True)
request, publication = factory.getRequestPublication()
self.assertEqual(isinstance(request, DummyRequestFactory), True)
self.assertEqual(publication, BrowserPublication)

def test_suite():
return TestSuite((
makeSuite(Test),
Expand Down

0 comments on commit 1fbf340

Please sign in to comment.