def test_purge(self): request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) IAnnotations(request)['plone.cachepurging.urls'] = set( ['/foo', '/bar']) registry = Registry() registry.registerInterface(ICloudflareSettings) registry.registerInterface(ICachePurgingSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = True settings = registry.forInterface(ICloudflareSettings) settings.apiKey = u'foobar' settings.domains = (u'www.foobar.com', ) settings.email = u'*****@*****.**' notify(PubSuccess(request)) self.assertEqual(len(self.purger.purged), 4) self.assertEqual( self.purger.purged[0], ('https://www.cloudflare.com/api_json.html?a=zone_file_purge&' 'tkn=foobar&url=http%2Fwww.foobar.com%2F%2Ffoo&' 'email=foo%40bar.com&z=www.foobar.com'))
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',) @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)
def test_no_registry(self): request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) IAnnotations(request)['plone.cachepurging.urls'] = set( ['/foo', '/bar']) notify(PubSuccess(request)) self.assertEqual([], self.purger.purged)
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', ) notify(PubSuccess(request)) self.assertEqual([], self.purger.purged)
def test_no_purger(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',) try: notify(PubSuccess(request)) except: self.fail()
def test_caching_disabled(self): request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) IAnnotations(request)['plone.cachepurging.urls'] = set( ['/foo', '/bar']) registry = Registry() registry.registerInterface(ICachePurgingSettings) registry.registerInterface(ICloudflareSettings) provideUtility(registry, IRegistry) settings = registry.forInterface(ICachePurgingSettings) settings.enabled = False settings = registry.forInterface(ICloudflareSettings) settings.apiKey = u'foobar' settings.domains = (u'www.foobar.com', ) notify(PubSuccess(request)) self.assertEqual([], self.purger.purged)
def test_no_registry(self): request = FauxRequest() alsoProvides(request, IAttributeAnnotatable) IAnnotations(request)["plone.cachepurging.urls"] = set( ["/foo", "/bar"]) @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 testPubSuccess(self): e = PubSuccess(_Request()) verifyObject(IPubSuccess, e) verifyObject(IPubEnd, e)