def test_purge_no_config(self): request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) IAnnotations(request)["plone.cachepurging.urls"] = set(["/foo", "/bar"]) registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True class FauxPurger(object): implements(IPurger) def __init__(self): self.purged = [] def purgeAsync(self, url, httpVerb="PURGE"): self.purged.append(url) purger = FauxPurger() provideUtility(purger) notify(PubSuccess(request)) self.assertEquals([], purger.purged)
class ControlPanelTestCase(unittest.TestCase): layer = INTEGRATION_TESTING def setUp(self): self.portal = self.layer['portal'] setRoles(self.portal, TEST_USER_ID, ['Manager']) self.registry = Registry() self.registry.registerInterface(INewsFlashSettings) def test_controlpanel_view(self): view = getMultiAdapter((self.portal, self.portal.REQUEST), name='newsflash-settings') view = view.__of__(self.portal) self.assertTrue(view()) def test_controlpanel_view_is_protected(self): from AccessControl import Unauthorized logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@newsflash-settings') def test_action_in_controlpanel(self): cp = api.portal.get_tool('portal_controlpanel') actions = [a.getAction(self)['id'] for a in cp.listActions()] self.assertIn('newsflash', actions)
class RegistryTest(unittest.TestCase): layer = Routes_INTEGRATION_TESTING def setUp(self): self.portal = self.layer["portal"] setRoles(self.portal, TEST_USER_ID, ["Manager"]) # set up settings registry self.registry = Registry() self.registry.registerInterface(IRoutesSettings) def test_controlpanel_view(self): view = getMultiAdapter((self.portal, self.portal.REQUEST), name="routes-settings") view = view.__of__(self.portal) self.failUnless(view()) def test_controlpanel_view_is_protected(self): from AccessControl import Unauthorized logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, "@@routes-settings") def test_action_in_controlpanel(self): cp = getToolByName(self.portal, "portal_controlpanel") actions = [a.getAction(self)["id"] for a in cp.listActions()] self.failUnless("routes" in actions) def test_routes_record(self): record_routes = self.registry.records[BASE_REGISTRY % "routes"] self.failUnless("routes" in IRoutesSettings) self.assertEquals(record_routes.value, set([]))
class TestSettings(unittest.TestCase): layer = COLLECTIVE_MOBIFYJS_INTEGRATION_TESTING def setUp(self): self.portal = self.layer['portal'] self.registry = Registry() self.registry.registerInterface(ISettings) def test_setup(self): pq = getToolByName(self.portal, 'portal_quickinstaller') self.assertTrue(pq.isProductInstalled('collective.mobifyjs')) def test_registry(self): settings = self.registry.forInterface(ISettings) self.assertEquals(settings.mobify_library_url, RESIZE_URL) self.assertEquals(settings.mobify_resize_backend, None) def test_controlpanel_view(self): view = getMultiAdapter((self.portal, self.portal.REQUEST), name="collective.mobifyjs-settings") self.assertEqual(view.__class__, SettingsView) self.failUnless(view())
class RegistryTest(unittest.TestCase): layer = GENWEBCONTROLPANEL_INTEGRATION_TESTING def setUp(self): self.portal = self.layer['portal'] setRoles(self.portal, TEST_USER_ID, ['Manager']) self.registry = Registry() self.registry.registerInterface(IGenwebControlPanelSettings) def test_registry_registered(self): registry = queryUtility(IRegistry) self.assertTrue(registry.forInterface(IGenwebControlPanelSettings)) def test_discussion_controlpanel_view(self): view = getMultiAdapter((self.portal, self.portal.REQUEST), name="genweb-controlpanel") view = view.__of__(self.portal) self.assertTrue(view()) def test_discussion_in_controlpanel(self): # Check if discussion is in the control panel self.controlpanel = getToolByName(self.portal, "portal_controlpanel") self.assertTrue('genweb' in [a.getAction(self)['id'] for a in self.controlpanel.listActions()]) def test_unicode_values(self): registry = queryUtility(IRegistry) genweb_settings = registry.forInterface(IGenwebControlPanelSettings) genweb_settings.html_title_ca = u"àéçÀÉ" self.assertEqual(genweb_settings.html_title_ca, u"àéçÀÉ")
def test_request_not_annotatable(self): context = FauxContext() request = FauxRequest() setRequest(request) registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234',) @implementer(IPurgePaths) @adapter(FauxContext) class FauxPurgePaths(object): def __init__(self, context): self.context = context def getRelativePaths(self): return ['/foo', '/bar'] def getAbsolutePaths(self): return [] provideAdapter(FauxPurgePaths, name="test1") try: notify(Purge(context)) except: self.fail()
class TestMonkeySettingsControlPanel(unittest.TestCase): layer = REDTURTLE_MONKEY_INTEGRATION_TESTING def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] self.registry = Registry() self.registry.registerInterface(IMonkeySettings) def test_monkey_controlpanel_view(self): view = getMultiAdapter((self.portal, self.portal.REQUEST), name="monkey-settings") view = view.__of__(self.portal) self.failUnless(view()) def test_monkey_controlpanel_view_protected(self): from AccessControl import Unauthorized logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@monkey-settings') def test_monkey_in_controlpanel(self): self.controlpanel = getToolByName(self.portal, "portal_controlpanel") self.failUnless( 'monkey' in [a.getAction(self)['id'] for a in self.controlpanel.listActions()]) def test_record_api_key(self): record = self.registry.records[ 'redturtle.monkey.interfaces.IMonkeySettings.api_key'] self.failUnless('api_key' in IMonkeySettings) self.assertEquals(record.value, u"")
class TestMLSControlPanel(unittest.TestCase): """Control Panel Test Case for plone.mls.core.""" layer = PLONE_MLS_CORE_INTEGRATION_TESTING def setUp(self): """Additional test setup.""" self.portal = self.layer['portal'] alsoProvides(self.portal.REQUEST, IMLSSpecific) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.registry = Registry() self.registry.registerInterface(IMLSSettings) def test_mls_controlpanel_view(self): """Test that the MLS configuration view is available.""" view = getMultiAdapter((self.portal, self.portal.REQUEST), name='mls-controlpanel') view = view.__of__(self.portal) self.assertTrue(view()) def test_mls_controlpanel_view_protected(self): """Test that the MLS configuration view needs authentication.""" from AccessControl import Unauthorized logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@mls-controlpanel') def test_mls_in_controlpanel(self): """Check that there is an MLS entry in the control panel.""" controlpanel = api.portal.get_tool(name='portal_controlpanel') actions = [ a.getAction(self)['id'] for a in controlpanel.listActions() ] self.assertTrue('propertyshelf_mls' in actions)
class ControlPanelTestCase(BaseTestCase): def afterSetUp(self): # Set up the iservices.controlpanel settings registry self.loginAsPortalOwner() self.registry = Registry() self.registry.registerInterface(ISettingsSchema) def test_iservices_controlpanel_view(self): # Test the iservices setting control panel view view = getMultiAdapter((self.portal, self.portal.REQUEST), name="iservices-controlpanel") view = view.__of__(self.portal) self.failUnless(view()) def test_controlpanel_view_protected(self): from AccessControl import Unauthorized self.logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@iservices-controlpanel') def test_controlpanel_keys(self): # Test that all the keys declared in the Interface are avilable for key_name in ISettingsSchema.names(): rkey_name = self.registry.records[ 'iservices.controlpanel.interfaces.ISettingsSchema.%s'%key_name] self.assertEquals(rkey_name.value, ISettingsSchema[key_name].default)
class TestAuthomaticSettingsControlPanel(unittest.TestCase): layer = PAS_PLUGINS_Authomatic_PLONE_INTEGRATION_TESTING def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] self.registry = Registry() self.registry.registerInterface(IPasPluginsAuthomaticSettings) def test_authomatic_controlpanel_view(self): view = getMultiAdapter((self.portal, self.portal.REQUEST), name="authomatic-controlpanel") view = view.__of__(self.portal) self.assertTrue(view()) def test_authomatic_controlpanel_view_protected(self): from AccessControl import Unauthorized logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@authomatic-controlpanel') def test_authomatic_in_controlpanel(self): self.controlpanel = getToolByName(self.portal, "portal_controlpanel") self.assertTrue( 'authomatic' in [a.getAction(self)['id'] for a in self.controlpanel.listActions()]) def test_record_config_property(self): record = self.registry.records[ 'pas.plugins.authomatic.interfaces.' + 'IPasPluginsAuthomaticSettings.json_config'] self.assertTrue('json_config' in IPasPluginsAuthomaticSettings) self.assertGreater(len(record.value), 20)
def test_no_paths(self): request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) IAnnotations(request)['plone.cachepurging.urls'] = set() registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234',) @implementer(IPurger) class FauxPurger(object): def __init__(self): self.purged = [] def purgeAsync(self, url, httpVerb='PURGE'): self.purged.append(url) purger = FauxPurger() provideUtility(purger) notify(PubSuccess(request)) self.assertEqual([], purger.purged)
def test_caching_disabled(self): request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) IAnnotations(request)["plone.cachepurging.urls"] = set( ["/foo", "/bar"] ) registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = False settings.cachingProxies = ("http://localhost:1234",) @implementer(IPurger) class FauxPurger(object): def __init__(self): self.purged = [] def purgeAsync(self, url, httpVerb="PURGE"): self.purged.append(url) purger = FauxPurger() provideUtility(purger) notify(PubSuccess(request)) self.assertEqual([], purger.purged)
class TestToolkitControlPanel(unittest.TestCase): """Control Panel Test Case for theming.toolkit.core.""" layer = THEMING_TOOLKIT_CORE_INTEGRATION_TESTING def setUp(self): """Additional test setup.""" self.portal = self.layer['portal'] directlyProvides(self.portal.REQUEST, IThemingToolkitCore) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.registry = Registry() self.registry.registerInterface(IToolkitSettings) def test_toolkit_controlpanel_view(self): """Test that the toolkit configuration view is available.""" view = getMultiAdapter((self.portal, self.portal.REQUEST), name='toolkit-controlpanel') view = view.__of__(self.portal) self.assertTrue(view()) def test_toolkit_controlpanel_view_protected(self): """Test that the toolkit configuration view needs authentication.""" from AccessControl import Unauthorized logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@toolkit-controlpanel') def test_toolkit_in_controlpanel(self): """Check that there is an toolkit entry in the control panel.""" self.controlpanel = getToolByName(self.portal, 'portal_controlpanel') self.assertTrue('propertyshelf_toolkit' in [a.getAction(self)['id'] for a in self.controlpanel.listActions()])
class TestControlpanel(base.BaseTestCase): """ """ def afterSetUp(self): self.loginAsPortalOwner() self.registry = Registry() self.registry.registerInterface(ISocialPublishControlPanel) qi = self.portal.portal_quickinstaller qi.installProduct('collective.socialpublish') def test_controlpanel_view(self): view = getMultiAdapter((self.portal, self.portal.REQUEST), name="socialpublish-settings") view = view.__of__(self.portal) self.failUnless(view()) def test_controlpanel_view_protected(self): from AccessControl import Unauthorized self.logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@socialpublish-settings') def test_in_controlpanel(self): self.controlpanel = getToolByName(self.portal, "portal_controlpanel") self.failUnless('socialpublish_settings' in [a.getAction(self)['id'] for a in self.controlpanel.listActions()]) def test_record_content_types(self): record_content_types = self.registry.records[ 'collective.socialpublish.controlpanel.interfaces.ISocialPublishControlPanel.content_types'] self.failUnless('content_types' in ISocialPublishControlPanel) self.assertEquals(record_content_types.value, set())
class TestMLSContactInfoControlPanel(unittest.TestCase): """Validate contact info control panel is available.""" layer = INTEGRATION_TESTING def setUp(self): """Additional test setup.""" self.portal = self.layer['portal'] alsoProvides(self.portal.REQUEST, IPloneMLSLayer) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.registry = Registry() self.registry.registerInterface(IMLSContactInfoSettings) def test_controlpanel_view(self): """Validate that the configuration view is available.""" view = getMultiAdapter( (self.portal, self.portal.REQUEST), name='mls-controlpanel-contact-info', ) view = view.__of__(self.portal) self.assertTrue(view()) def test_controlpanel_view_protected(self): """Validate that the configuration view needs authentication.""" from AccessControl import Unauthorized logout() self.assertRaises( Unauthorized, self.portal.restrictedTraverse, '@@mls-controlpanel-contact-info', )
class ControlPanelTestCase(BaseTestCase): def afterSetUp(self): # Set up the iservices.controlpanel settings registry self.loginAsPortalOwner() self.registry = Registry() self.registry.registerInterface(ISettingsSchema) def test_iservices_controlpanel_view(self): # Test the iservices setting control panel view view = getMultiAdapter((self.portal, self.portal.REQUEST), name="iservices-controlpanel") view = view.__of__(self.portal) self.failUnless(view()) def test_controlpanel_view_protected(self): from AccessControl import Unauthorized self.logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@iservices-controlpanel') def test_controlpanel_keys(self): # Test that all the keys declared in the Interface are avilable for key_name in ISettingsSchema.names(): rkey_name = self.registry.records[ 'iservices.controlpanel.interfaces.ISettingsSchema.%s' % key_name] self.assertEquals(rkey_name.value, ISettingsSchema[key_name].default)
class RegistryTest(ZeroCMSTestCase): def afterSetUp(self): # Set up the zerocms settings registry self.loginAsPortalOwner() self.registry = Registry() self.registry.registerInterface(IZeroCMSSettings) def test_zerocms_controlpanel_view(self): view = getMultiAdapter((self.portal, self.portal.REQUEST), name="zerocms-settings") view = view.__of__(self.portal) self.failUnless(view()) def test_zerocms_controlpanel_view_protected(self): from AccessControl import Unauthorized self.logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@zerocms-settings') def test_record_zerocms_key(self): # Test that the zerocms_key record is in the control panel record_post_url = self.registry.records[ 'Products.zerocms.interfaces.IZeroCMSSettings.post_url'] self.failUnless('post_url' in IZeroCMSSettings) self.assertEquals(record_post_url.value, u"http://localhost/ZeroCMS/api/document/add") def test_record_instance_url(self): record_instance_url = self.registry.records[ 'Products.zerocms.interfaces.IZeroCMSSettings.instance_url'] self.failUnless('instance_url' in IZeroCMSSettings) self.assertEquals(record_instance_url.value, u"http://localhost:8080/zerorally")
def test_no_request(self): context = FauxContext() registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ("http://localhost:1234", ) @implementer(IPurgePaths) @adapter(FauxContext) class FauxPurgePaths(object): def __init__(self, context): self.context = context def getRelativePaths(self): return ["/foo", "/bar"] def getAbsolutePaths(self): return [] provideAdapter(FauxPurgePaths, name="test1") try: notify(Purge(context)) except: self.fail()
def test_purge(self): request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) IAnnotations(request)["plone.cachepurging.urls"] = set( ["/foo", "/bar"]) registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ("http://localhost:1234", ) @implementer(IPurger) class FauxPurger(object): def __init__(self): self.purged = [] def purgeAsync(self, url, httpVerb="PURGE"): self.purged.append(url) purger = FauxPurger() provideUtility(purger) notify(PubSuccess(request)) self.assertSetEqual( {"http://localhost:1234/foo", "http://localhost:1234/bar"}, set(purger.purged), )
def test_purge(self): request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) IAnnotations(request)['plone.cachepurging.urls'] = set( ['/foo', '/bar']) registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234',) @implementer(IPurger) class FauxPurger(object): def __init__(self): self.purged = [] def purgeAsync(self, url, httpVerb='PURGE'): self.purged.append(url) purger = FauxPurger() provideUtility(purger) notify(PubSuccess(request)) self.assertEqual( ['http://localhost:1234/foo', 'http://localhost:1234/bar'], purger.purged )
def test_request_not_annotatable(self): request = FauxRequest() registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234', ) class FauxPurger(object): implements(IPurger) def __init__(self): self.purged = [] def purgeAsync(self, url, httpVerb='PURGE'): self.purged.append(url) purger = FauxPurger() provideUtility(purger) notify(PubSuccess(request)) self.assertEqual([], purger.purged)
def test_malformed_virtual_url_parts(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest("/foo") self.request["VIRTUAL_URL_PARTS"] = ("foo", ) self.assertEqual(["/foo"], self.rewriter("/foo")) self.request["VIRTUAL_URL_PARTS"] = () self.assertEqual(["/foo"], self.rewriter("/foo")) self.request["VIRTUAL_URL_PARTS"] = ( "http://example.com", "", "/foo", "x", ) self.assertEqual(["/foo"], self.rewriter("/foo")) self.request["VIRTUAL_URL_PARTS"] = "foo" self.assertEqual(["/foo"], self.rewriter("/foo"))
def test_request_not_annotatable(self): context = FauxContext() request = FauxRequest() setRequest(request) registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234', ) class FauxPurgePaths(object): implements(IPurgePaths) adapts(FauxContext) def __init__(self, context): self.context = context def getRelativePaths(self): return ['/foo', '/bar'] def getAbsolutePaths(self): return [] provideAdapter(FauxPurgePaths, name="test1") try: notify(Purge(context)) except: self.fail()
def test_request_not_annotatable(self): request = FauxRequest() registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234',) @implementer(IPurger) class FauxPurger(object): def __init__(self): self.purged = [] def purgeAsync(self, url, httpVerb='PURGE'): self.purged.append(url) purger = FauxPurger() provideUtility(purger) notify(PubSuccess(request)) self.assertEqual([], purger.purged)
class TestMLSControlPanel(unittest.TestCase): """Control Panel Test Case for plone.mls.core.""" layer = PLONE_MLS_CORE_INTEGRATION_TESTING def setUp(self): """Additional test setup.""" self.portal = self.layer['portal'] alsoProvides(self.portal.REQUEST, IMLSSpecific) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.registry = Registry() self.registry.registerInterface(IMLSSettings) def test_mls_controlpanel_view(self): """Test that the MLS configuration view is available.""" view = getMultiAdapter((self.portal, self.portal.REQUEST), name='mls-controlpanel') view = view.__of__(self.portal) self.assertTrue(view()) def test_mls_controlpanel_view_protected(self): """Test that the MLS configuration view needs authentication.""" from AccessControl import Unauthorized logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@mls-controlpanel')
class TestQueuePurge(unittest.TestCase): def setUp(self): provideAdapter(persistentFieldAdapter) self.registry = Registry() self.registry.registerInterface(ICachePurgingSettings) provideUtility(self.registry, IRegistry) self.settings = self.registry.forInterface(ICachePurgingSettings) self.settings.enabled = True self.settings.cachingProxies = ('http://localhost:1234',) self.handler = Handler() provideHandler(self.handler.handler) def tearDown(self): zope.component.testing.tearDown() def test_disabled(self): self.settings.enabled = False view = QueuePurge(FauxContext(), FauxRequest()) self.assertEqual('Caching not enabled', view()) self.assertEqual([], self.handler.invocations) def test_enabled(self): self.settings.enabled = True context = FauxContext() view = QueuePurge(context, FauxRequest) self.assertEqual('Queued', view()) self.assertEqual(1, len(self.handler.invocations)) self.assertTrue(self.handler.invocations[0].object is context)
def test_enabled(self): context = FauxContext() request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) setRequest(request) registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234',) @implementer(IPurgePaths) @adapter(FauxContext) class FauxPurgePaths(object): def __init__(self, context): self.context = context def getRelativePaths(self): return ['/foo', '/bar'] def getAbsolutePaths(self): return [] provideAdapter(FauxPurgePaths, name="test1") notify(Purge(context)) self.assertEqual({'plone.cachepurging.urls': set(['/foo', '/bar'])}, dict(IAnnotations(request)))
class TestQueuePurge(unittest.TestCase): def setUp(self): provideAdapter(persistentFieldAdapter) self.registry = Registry() self.registry.registerInterface(ICachePurgingSettings) provideUtility(self.registry, IRegistry) self.settings = self.registry.forInterface(ICachePurgingSettings) self.settings.enabled = True self.settings.cachingProxies = ('http://localhost:1234', ) self.handler = Handler() provideHandler(self.handler.handler) def tearDown(self): zope.component.testing.tearDown() def test_disabled(self): self.settings.enabled = False view = QueuePurge(FauxContext(), FauxRequest()) self.assertEqual('Caching not enabled', view()) self.assertEqual([], self.handler.invocations) def test_enabled(self): self.settings.enabled = True context = FauxContext() view = QueuePurge(context, FauxRequest) self.assertEqual('Queued', view()) self.assertEqual(1, len(self.handler.invocations)) self.assertTrue(self.handler.invocations[0].object is context)
def test_enabled(self): registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True self.assertEqual(True, utils.isCachePurgingEnabled())
def test_passed_registry(self): registry = Registry() registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True self.assertEqual(False, utils.isCachePurgingEnabled()) self.assertEqual(True, utils.isCachePurgingEnabled(registry))
def test_passed_registry(self): registry = Registry() registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234',) self.assertEqual(False, utils.isCachePurgingEnabled()) self.assertEqual(True, utils.isCachePurgingEnabled(registry))
def test_passed_registry(self): registry = Registry() registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234', ) self.assertEqual(False, utils.isCachePurgingEnabled()) self.assertEqual(True, utils.isCachePurgingEnabled(registry))
def test_enabled(self): registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings.cachingProxies = ('http://localhost:1234',) self.assertEquals(True, utils.isCachePurgingEnabled())
def test_empty_request(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self.request.clear() self.assertEqual(['/foo'], self.rewriter('/foo'))
def test_virtual_hosting_disabled(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = False self._prepareVHMRequest('/foo') self.assertEqual(['/foo'], self.rewriter('/foo'))
def test_https(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest('/foo', domain='example.com:81', protocol='https') self.assertEqual(['/VirtualHostBase/https/example.com:81/plone/VirtualHostRoot/foo'], self.rewriter('/foo'))
def test_no_virtual_root_physical_path(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest('/foo') del self.request['VirtualRootPhysicalPath'] self.assertEqual(['/foo'], self.rewriter('/foo'))
def test_no_virtual_url_parts(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest('/foo') del self.request['VIRTUAL_URL_PARTS'] self.assertEqual(['/foo'], self.rewriter('/foo'))
def test_standard_vhm(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest('/foo') self.assertEqual(['/VirtualHostBase/http/example.com/plone/VirtualHostRoot/foo'], self.rewriter('/foo'))
def test_disabled(self): registry = Registry() registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = False settings.cachingProxies = ('http://localhost:1234', ) self.assertEqual(False, utils.isCachePurgingEnabled())
def test_no_virtual_url(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest("/foo") del self.request["VIRTUAL_URL"] self.assertEqual(["/foo"], self.rewriter("/foo"))
def test_virtual_path_is_deep(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest('/foo/bar', root='/plone') self.assertEqual(['/VirtualHostBase/http/example.com/plone/VirtualHostRoot/foo/bar'], self.rewriter('/foo/bar'))
def test_virtual_root_is_app_root(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest('/foo', root='/') self.assertEquals(['/VirtualHostBase/http/example.com/VirtualHostRoot/foo'], self.rewriter('/foo'))
def test_inside_out_hosting(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest('/foo', root='/bar/plone', prefix='/foo/bar') self.assertEquals(['/VirtualHostBase/http/example.com/bar/plone/VirtualHostRoot/_vh_foo/_vh_bar/foo'], self.rewriter('/foo'))
def test_domains_w_different_path_in_request(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True settings.domains = ('http://example.org:81', 'https://example.com:82') self._prepareVHMRequest('/bar', domain='example.com:81', protocol='https') self.assertEqual(['/VirtualHostBase/http/example.org:81/plone/VirtualHostRoot/foo', '/VirtualHostBase/https/example.com:82/plone/VirtualHostRoot/foo'], self.rewriter('/foo'))
def test_editors(self): from plone.registry import Registry registry = Registry() from Products.CMFPlone.interfaces import IEditingSchema registry.registerInterface(IEditingSchema, prefix='plone') registry.records['plone.available_editors'] vocab_util = getUtility(IVocabularyFactory, 'plone.app.vocabularies.AvailableEditors') editors = vocab_util(self.portal) self.assertEqual(2, len(editors.by_token)) self.assertTrue('None' in [x for x in editors.by_token]) self.assertTrue('TinyMCE' in [x for x in editors.by_token])
def test_nonstandard_port(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest("/foo", domain="example.com:81") self.assertEqual( ["/VirtualHostBase/http/example.com:81/plone/VirtualHostRoot/foo"], self.rewriter("/foo"), )
def test_inside_out_hosting_root_empty_path(self): registry = Registry() provideUtility(registry, IRegistry) registry.registerInterface(ICachePurgingSettings) settings = registry.forInterface(ICachePurgingSettings) settings.virtualHosting = True self._prepareVHMRequest('/', root='/plone', prefix='/plone') self.assertEqual( ['/VirtualHostBase/http/example.com/plone/VirtualHostRoot/_vh_plone'], self.rewriter(''))
class TestPurgeImmediately(unittest.TestCase): def setUp(self): provideAdapter(persistentFieldAdapter) self.registry = Registry() self.registry.registerInterface(ICachePurgingSettings) provideUtility(self.registry, IRegistry) self.settings = self.registry.forInterface(ICachePurgingSettings) self.settings.enabled = True self.settings.cachingProxies = ("http://localhost:1234", ) @implementer(IPurgePaths) @adapter(FauxContext) class FauxPurgePaths(object): def __init__(self, context): self.context = context def getRelativePaths(self): return ["/foo", "/bar"] def getAbsolutePaths(self): return [] provideAdapter(FauxPurgePaths, name="test1") @implementer(IPurger) class FauxPurger(object): def purgeSync(self, url, httpVerb="PURGE"): return "200 OK", "cached", None provideUtility(FauxPurger()) def tearDown(self): zope.component.testing.tearDown() def test_disabled(self): self.settings.enabled = False view = PurgeImmediately(FauxContext(), FauxRequest()) self.assertEqual("Caching not enabled", view()) def test_purge(self): view = PurgeImmediately(FauxContext(), FauxRequest()) self.assertEqual( "Purged: http://localhost:1234/foo, " "Status: 200 OK, " "X-Cache: cached, " "Error: None\n" "Purged: http://localhost:1234/bar, " "Status: 200 OK, " "X-Cache: cached, " "Error: None\n", view(), )
class RegistryTest(unittest.TestCase): layer = INTEGRATION_TESTING def setUp(self): self.portal = self.layer['portal'] setRoles(self.portal, TEST_USER_ID, ['Manager']) # Set up the settings registry self.registry = Registry() self.registry.registerInterface(IDisqusSettings) def test_controlpanel_view(self): # control panel view exists view = getMultiAdapter((self.portal, self.portal.REQUEST), name=config.CONTROLPANEL_ID) view = view.__of__(self.portal) self.assertTrue(view()) def test_controlpanel_view_protected(self): # control panel view can not be accessed by anonymous users from AccessControl import Unauthorized logout() self.assertRaises(Unauthorized, self.portal.restrictedTraverse, '@@telesur-disqus-controlpanel') def test_entry_in_controlpanel(self): # there must be an entry in the control panel self.controlpanel = getToolByName(self.portal, 'portal_controlpanel') self.assertTrue( 'telesur.registry.disqus' in [a.getAction(self)['id'] for a in self.controlpanel.listActions()]) def test_record_access_token(self): # access_token record must be in the registry record_access_token = self.registry.records[ 'telesur.registry.interfaces.IDisqusSettings.access_token'] self.assertTrue('access_token' in IDisqusSettings) self.assertEquals(record_access_token.value, None) def test_record_app_public_key(self): # app_public_key record must be in the registry record_app_public_key = self.registry.records[ 'telesur.registry.interfaces.IDisqusSettings.app_public_key'] self.assertTrue('app_public_key' in IDisqusSettings) self.assertEquals(record_app_public_key.value, None) def test_record_app_secret_key(self): # app_secret_key record must be in the registry record_app_secret_key = self.registry.records[ 'telesur.registry.interfaces.IDisqusSettings.app_secret_key'] self.assertTrue('app_secret_key' in IDisqusSettings) self.assertEquals(record_app_secret_key.value, None)