コード例 #1
0
ファイル: test_operations.py プロジェクト: Vinsurya/Plone
 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))
コード例 #2
0
    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))
コード例 #3
0
ファイル: test_operations.py プロジェクト: Vinsurya/Plone
 def test_chained_operations_not_found(self):
     
     self.registry.records["%s.operations" % Chain.prefix] = Record(field.List(), ['op1'])
     
     view = DummyView()
     request = DummyRequest(view, DummyResponse())
     
     chain = Chain(view, request)
     chain.modifyResponse('testrule', request.response)
     
     self.assertEquals({'PUBLISHED': view}, dict(request))
     self.assertEquals({}, dict(request.response))
コード例 #4
0
ファイル: test_operations.py プロジェクト: Vinsurya/Plone
 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))
コード例 #5
0
    def test_chained_operations_not_found(self):

        self.registry.records["%s.operations" % Chain.prefix] = Record(
            field.List(), ['op1'])

        view = DummyView()
        request = DummyRequest(view, DummyResponse())

        chain = Chain(view, request)
        chain.modifyResponse('testrule', request.response)

        self.assertEquals({'PUBLISHED': view}, dict(request))
        self.assertEquals({}, dict(request.response))
コード例 #6
0
ファイル: test_operations.py プロジェクト: Vinsurya/Plone
 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))
コード例 #7
0
    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))
コード例 #8
0
    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))
コード例 #9
0
    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))
コード例 #10
0
    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)
        )
コード例 #11
0
    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))
コード例 #12
0
    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))