def test_multiple_operations_multiple_found(self): self.registry.records["%s.operations" % Chain.prefix] = Record( field.List(), ['op1', 'op2']) view = DummyView() request = DummyRequest(view, DummyResponse()) class DummyOperation1(object): implements(ICachingOperation) adapts(Interface, Interface) def __init__(self, published, request): self.published = published self.request = request def interceptResponse(self, rulename, response): return u"foo" def modifyResponse(self, rulename, response): response['X-Mutated-1'] = rulename provideAdapter(DummyOperation1, name="op1") class DummyOperation2(object): implements(ICachingOperation) adapts(Interface, Interface) def __init__(self, published, request): self.published = published self.request = request def interceptResponse(self, rulename, response): return u"bar" def modifyResponse(self, rulename, response): response['X-Mutated-2'] = rulename provideAdapter(DummyOperation2, name="op2") chain = Chain(view, request) ret = chain.interceptResponse('testrule', request.response) self.assertEquals(u"foo", ret) self.assertEquals({'PUBLISHED': view}, dict(request)) self.assertEquals({'X-Cache-Chain-Operations': 'op1'}, dict(request.response)) request = DummyRequest(view, DummyResponse()) chain = Chain(view, request) chain.modifyResponse('testrule', request.response) self.assertEquals({'PUBLISHED': view}, dict(request)) self.assertEquals( { 'X-Mutated-1': 'testrule', 'X-Mutated-2': 'testrule', 'X-Cache-Chain-Operations': 'op1; op2' }, dict(request.response))
def test_no_option(self): view = DummyView() request = DummyRequest(view, DummyResponse()) chain = Chain(view, request) ret = chain.interceptResponse('testrule', request.response) chain.modifyResponse('testrule', request.response) self.assertEquals(None, ret) self.assertEquals({'PUBLISHED': view}, dict(request)) self.assertEquals({}, dict(request.response))
def test_multiple_operations_multiple_found(self): self.registry.records["%s.operations" % Chain.prefix] = Record(field.List(), ['op1', 'op2']) view = DummyView() request = DummyRequest(view, DummyResponse()) class DummyOperation1(object): implements(ICachingOperation) adapts(Interface, Interface) def __init__(self, published, request): self.published = published self.request = request def interceptResponse(self, rulename, response): return u"foo" def modifyResponse(self, rulename, response): response['X-Mutated-1'] = rulename provideAdapter(DummyOperation1, name="op1") class DummyOperation2(object): implements(ICachingOperation) adapts(Interface, Interface) def __init__(self, published, request): self.published = published self.request = request def interceptResponse(self, rulename, response): return u"bar" def modifyResponse(self, rulename, response): response['X-Mutated-2'] = rulename provideAdapter(DummyOperation2, name="op2") chain = Chain(view, request) ret = chain.interceptResponse('testrule', request.response) self.assertEquals(u"foo", ret) self.assertEquals({'PUBLISHED': view}, dict(request)) self.assertEquals({'X-Cache-Chain-Operations': 'op1'}, dict(request.response)) request = DummyRequest(view, DummyResponse()) chain = Chain(view, request) chain.modifyResponse('testrule', request.response) self.assertEquals({'PUBLISHED': view}, dict(request)) self.assertEquals({'X-Mutated-1': 'testrule', 'X-Mutated-2': 'testrule', 'X-Cache-Chain-Operations': 'op1; op2'}, dict(request.response))
def test_operations_empty(self): self.registry.records["%s.operations" % Chain.prefix] = Record(field.List(), []) view = DummyView() request = DummyRequest(view, DummyResponse()) chain = Chain(view, request) ret = chain.interceptResponse('testrule', request.response) chain.modifyResponse('testrule', request.response) self.assertEquals(None, ret) self.assertEquals({'PUBLISHED': view}, dict(request)) self.assertEquals({}, dict(request.response))
def test_operations_empty(self): self.registry.records["%s.operations" % Chain.prefix] = Record( field.List(), []) view = DummyView() request = DummyRequest(view, DummyResponse()) chain = Chain(view, request) ret = chain.interceptResponse('testrule', request.response) chain.modifyResponse('testrule', request.response) self.assertEquals(None, ret) self.assertEquals({'PUBLISHED': view}, dict(request)) self.assertEquals({}, dict(request.response))
def test_operations_list_not_set(self): self.registry.records['{0}.operations'.format(Chain.prefix)] = Record( field.List()) view = DummyView() request = DummyRequest(view, DummyResponse()) chain = Chain(view, request) ret = chain.interceptResponse('testrule', request.response) chain.modifyResponse('testrule', request.response) self.assertEqual(None, ret) self.assertEqual({'PUBLISHED': view}, dict(request)) self.assertEqual({}, dict(request.response))
def test_operations_list_not_set(self): self.registry.records[ '{0}.operations'.format(Chain.prefix) ] = Record(field.List()) view = DummyView() request = DummyRequest(view, DummyResponse()) chain = Chain(view, request) ret = chain.interceptResponse('testrule', request.response) chain.modifyResponse('testrule', request.response) self.assertEqual(None, ret) self.assertEqual({'PUBLISHED': view}, dict(request)) self.assertEqual({}, dict(request.response))
def test_multiple_operations_one_found(self): self.registry.records[ '{0}.operations'.format(Chain.prefix) ] = Record(field.List(), ['op1', 'op2']) view = DummyView() request = DummyRequest(view, DummyResponse()) @implementer(ICachingOperation) @adapter(Interface, Interface) class DummyOperation(object): def __init__(self, published, request): self.published = published self.request = request def interceptResponse(self, rulename, response): return u'foo' def modifyResponse(self, rulename, response): response['X-Mutated'] = rulename provideAdapter(DummyOperation, name='op2') chain = Chain(view, request) ret = chain.interceptResponse('testrule', request.response) self.assertEqual(u'foo', ret) self.assertEqual({'PUBLISHED': view}, dict(request)) self.assertEqual( {'X-Cache-Chain-Operations': 'op2'}, dict(request.response) ) request = DummyRequest(view, DummyResponse()) chain = Chain(view, request) chain.modifyResponse('testrule', request.response) self.assertEqual({'PUBLISHED': view}, dict(request)) self.assertEqual( {'X-Mutated': 'testrule', 'X-Cache-Chain-Operations': 'op2'}, dict(request.response) )
def test_multiple_operations_one_found(self): self.registry.records['{0}.operations'.format(Chain.prefix)] = Record( field.List(), ['op1', 'op2']) view = DummyView() request = DummyRequest(view, DummyResponse()) @implementer(ICachingOperation) @adapter(Interface, Interface) class DummyOperation(object): def __init__(self, published, request): self.published = published self.request = request def interceptResponse(self, rulename, response): return u'foo' def modifyResponse(self, rulename, response): response['X-Mutated'] = rulename provideAdapter(DummyOperation, name='op2') chain = Chain(view, request) ret = chain.interceptResponse('testrule', request.response) self.assertEqual(u'foo', ret) self.assertEqual({'PUBLISHED': view}, dict(request)) self.assertEqual({'X-Cache-Chain-Operations': 'op2'}, dict(request.response)) request = DummyRequest(view, DummyResponse()) chain = Chain(view, request) chain.modifyResponse('testrule', request.response) self.assertEqual({'PUBLISHED': view}, dict(request)) self.assertEqual( { 'X-Mutated': 'testrule', 'X-Cache-Chain-Operations': 'op2' }, dict(request.response))