Пример #1
0
    def test_applyTransform_streamiterator(self):
        tmp = tempfile.mkstemp()[1]
        try:

            with open(tmp, 'w') as out:
                out.write('foo')

            @implementer(ITransformer)
            class FauxTransformer(object):

                def __call__(self, request, result, encoding):
                    return filestream_iterator(tmp)

            transformer = FauxTransformer()
            provideUtility(transformer)

            published = FauxPublished()
            request = FauxRequest(published)
            applyTransformOnSuccess(FauxPubEvent(request))

            self.assertTrue(
                isinstance(
                    request.response.getBody(),
                    filestream_iterator
                )
            )
        finally:
            os.unlink(tmp)
Пример #2
0
 def test_publish_content(self):
     context = FauxContent('foo')
     notify(ObjectCreatedEvent(context))
     request = FauxRequest(context)
     notify(PubAfterTraversal(request))
     applyTransformOnSuccess(FauxPubEvent(request))
     self.assertEqual('#{}#'.format(IUUID(context)),
                      request.response.getHeader('X-Ids-Involved'))
Пример #3
0
 def test_applyTransform_webdav_port(self):
     class DoNotCallTransformer(object):
         implements(ITransformer)
         encoding = None            
         def __call__(self, request, result, encoding):
             raise AssertionError("Shouldn't have been called")
     
     transformer = DoNotCallTransformer()
     provideUtility(transformer)
     
     published = FauxPublished()
     request = FauxRequest(published)
     request['WEBDAV_SOURCE_PORT'] = '8081'
     applyTransformOnSuccess(FauxPubEvent(request))
Пример #4
0
    def test_applyTransform_iterable(self):
        @implementer(ITransformer)
        class FauxTransformer(object):
            def __call__(self, request, result, encoding):
                return ['iter', 'one']

        transformer = FauxTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        applyTransformOnSuccess(FauxPubEvent(request))

        self.assertEqual('iterone', request.response.getBody())
Пример #5
0
 def test_applyTransform_iterable(self):
     class FauxTransformer(object):
         implements(ITransformer)
         def __call__(self, request, result, encoding):
             return ['iter', 'one']
     
     transformer = FauxTransformer()
     provideUtility(transformer)
     
     published = FauxPublished()
     request = FauxRequest(published)
     applyTransformOnSuccess(FauxPubEvent(request))
     
     self.assertEquals('iterone', request.response.getBody())
Пример #6
0
    def test_applyTransform_str(self):
        class FauxTransformer(object):
            implements(ITransformer)
            def __call__(self, request, result, encoding):
                return 'dummystr'

        transformer = FauxTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        applyTransformOnSuccess(FauxPubEvent(request))

        self.assertEquals('dummystr', request.response.getBody())
Пример #7
0
 def test_applyTransform_webdav_method(self):
     class DoNotCallTransformer(object):
         implements(ITransformer)
         encoding = None            
         def __call__(self, request, result, encoding):
             raise AssertionError("Shouldn't have been called")
     
     transformer = DoNotCallTransformer()
     provideUtility(transformer)
     
     published = FauxPublished()
     request = FauxRequest(published)
     request['REQUEST_METHOD'] = 'PUT'
     applyTransformOnSuccess(FauxPubEvent(request))
Пример #8
0
    def test_applyTransform_webdav_pathinfo(self):
        class DoNotCallTransformer(object):
            implements(ITransformer)
            encoding = None
            def __call__(self, request, result, encoding):
                raise AssertionError("Shouldn't have been called")

        transformer = DoNotCallTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        request['PATH_INFO'] = '/foo/bar/manage_DAVget'
        applyTransformOnSuccess(FauxPubEvent(request))
Пример #9
0
    def test_applyTransform_webdav_method(self):
        class DoNotCallTransformer(object):
            implements(ITransformer)
            encoding = None
            def __call__(self, request, result, encoding):
                raise AssertionError("Shouldn't have been called")

        transformer = DoNotCallTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        request['REQUEST_METHOD'] = 'PUT'
        applyTransformOnSuccess(FauxPubEvent(request))
Пример #10
0
    def test_applyTransform_webdav_port(self):
        class DoNotCallTransformer(object):
            implements(ITransformer)
            encoding = None
            def __call__(self, request, result, encoding):
                raise AssertionError("Shouldn't have been called")

        transformer = DoNotCallTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        request['WEBDAV_SOURCE_PORT'] = '8081'
        applyTransformOnSuccess(FauxPubEvent(request))
Пример #11
0
 def test_applyTransform_webdav_pathinfo(self):
     class DoNotCallTransformer(object):
         implements(ITransformer)
         encoding = None            
         def __call__(self, request, result, encoding):
             raise AssertionError("Shouldn't have been called")
     
     transformer = DoNotCallTransformer()
     provideUtility(transformer)
     
     published = FauxPublished()
     request = FauxRequest(published)
     request['PATH_INFO'] = '/foo/bar/manage_DAVget'
     applyTransformOnSuccess(FauxPubEvent(request))
Пример #12
0
    def test_applyTransform_unicode(self):
        @implementer(ITransformer)
        class FauxTransformer(object):
            def __call__(self, request, result, encoding):
                return u'dummystr'

        transformer = FauxTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        applyTransformOnSuccess(FauxPubEvent(request))

        # note: the real setBody would encode here
        self.assertEqual(u'dummystr', request.response.getBody())
Пример #13
0
 def test_applyTransform_default_encoding(self):
     class EncodingCaptureTransformer(object):
         implements(ITransformer)
         encoding = None            
         def __call__(self, request, result, encoding):
             self.encoding = encoding
     
     transformer = EncodingCaptureTransformer()
     provideUtility(transformer)
     
     published = FauxPublished()
     request = FauxRequest(published)
     applyTransformOnSuccess(FauxPubEvent(request))
     
     self.assertEquals(default_encoding, transformer.encoding)
Пример #14
0
    def test_applyTransform_default_encoding(self):
        class EncodingCaptureTransformer(object):
            implements(ITransformer)
            encoding = None
            def __call__(self, request, result, encoding):
                self.encoding = encoding

        transformer = EncodingCaptureTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        applyTransformOnSuccess(FauxPubEvent(request))

        self.assertEquals(default_encoding, transformer.encoding)
Пример #15
0
    def test_applyTransform_str(self):
        @implementer(ITransformer)
        class FauxTransformer(object):

            def __call__(self, request, result, encoding):
                return 'dummystr'

        transformer = FauxTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        applyTransformOnSuccess(FauxPubEvent(request))

        self.assertEqual('dummystr', request.response.getBody())
Пример #16
0
 def test_applyTransform_unicode(self):
     class FauxTransformer(object):
         implements(ITransformer)
         def __call__(self, request, result, encoding):
             return u'dummystr'
     
     transformer = FauxTransformer()
     provideUtility(transformer)
     
     published = FauxPublished()
     request = FauxRequest(published)
     applyTransformOnSuccess(FauxPubEvent(request))
     
     # note: the real setBody would encode here
     self.assertEquals(u'dummystr', request.response.getBody())
Пример #17
0
 def test_applyTransform_other_encoding(self):
     class EncodingCaptureTransformer(object):
         implements(ITransformer)
         encoding = None            
         def __call__(self, request, result, encoding):
             self.encoding = encoding
     
     transformer = EncodingCaptureTransformer()
     provideUtility(transformer)
     
     published = FauxPublished()
     request = FauxRequest(published)
     request.response.headers['content-type'] = 'text/html; charset=dummy'
     applyTransformOnSuccess(FauxPubEvent(request))
     
     self.assertEquals("dummy", transformer.encoding)
Пример #18
0
    def test_applyTransform_other_encoding(self):
        class EncodingCaptureTransformer(object):
            implements(ITransformer)
            encoding = None
            def __call__(self, request, result, encoding):
                self.encoding = encoding

        transformer = EncodingCaptureTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        request.response.headers['content-type'] = 'text/html; charset=dummy'
        applyTransformOnSuccess(FauxPubEvent(request))

        self.assertEquals("dummy", transformer.encoding)
Пример #19
0
    def test_applyTransform_other_encoding_with_header_missing_space(self):
        @implementer(ITransformer)
        class EncodingCaptureTransformer(object):
            encoding = None

            def __call__(self, request, result, encoding):
                self.encoding = encoding

        transformer = EncodingCaptureTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        request.response.headers['content-type'] = 'text/html;charset=utf-16'
        applyTransformOnSuccess(FauxPubEvent(request))

        self.assertEqual('utf-16', transformer.encoding)
Пример #20
0
    def test_applyTransform_str_input_body(self):
        @implementer(ITransformer)
        class FauxTransformer(object):
            def __call__(self, request, result, encoding):
                assert isinstance(result, list)
                assert isinstance(result[0], str)
                return 'dummystr'

        transformer = FauxTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        request.response.setBody('<html />')

        applyTransformOnSuccess(FauxPubEvent(request))

        # note: the real setBody would encode here
        self.assertEqual('dummystr', request.response.getBody())
Пример #21
0
 def test_applyTransform_str_input_body(self):
     class FauxTransformer(object):
         implements(ITransformer)
         def __call__(self, request, result, encoding):
             assert isinstance(result, list)
             assert isinstance(result[0], str)
             return 'dummystr'
     
     transformer = FauxTransformer()
     provideUtility(transformer)
     
     published = FauxPublished()
     request = FauxRequest(published)
     request.response.setBody("<html />")
     
     applyTransformOnSuccess(FauxPubEvent(request))
     
     # note: the real setBody would encode here
     self.assertEquals('dummystr', request.response.getBody())
Пример #22
0
    def test_applyTransform_unicode_input_body(self):
        @implementer(ITransformer)
        class FauxTransformer(object):

            def __call__(self, request, result, encoding):
                assert isinstance(result, list)
                assert isinstance(result[0], six.binary_type)
                return u'dummystr'

        transformer = FauxTransformer()
        provideUtility(transformer)

        published = FauxPublished()
        request = FauxRequest(published)
        request.response.setBody(u'<html />')

        applyTransformOnSuccess(FauxPubEvent(request))

        # note: the real setBody would encode here
        self.assertEqual(u'dummystr', request.response.getBody())
Пример #23
0
    def test_applyTransform_streamiterator(self):
        tmp = tempfile.mkstemp()[1]
        try:

            with open(tmp, 'w') as out:
                out.write('foo')

            @implementer(ITransformer)
            class FauxTransformer(object):
                def __call__(self, request, result, encoding):
                    return filestream_iterator(tmp)

            transformer = FauxTransformer()
            provideUtility(transformer)

            published = FauxPublished()
            request = FauxRequest(published)
            applyTransformOnSuccess(FauxPubEvent(request))

            self.assertTrue(
                isinstance(request.response.getBody(), filestream_iterator))
        finally:
            os.unlink(tmp)
Пример #24
0
 def test_applyTransform_streamiterator(self):
     tmp = tempfile.mkstemp()[1]
     try:
         
         out = open(tmp, 'w')
         print >> out, "foo"
         out.close()
         
         class FauxTransformer(object):
             implements(ITransformer)
             def __call__(self, request, result, encoding):
                 return filestream_iterator(tmp)
     
         transformer = FauxTransformer()
         provideUtility(transformer)
     
         published = FauxPublished()
         request = FauxRequest(published)
         applyTransformOnSuccess(FauxPubEvent(request))
     
         self.failUnless(isinstance(request.response.getBody(), filestream_iterator,))
     finally:
         os.unlink(tmp)
Пример #25
0
    def test_applyTransform_streamiterator(self):
        tmp = tempfile.mkstemp()[1]
        try:

            out = open(tmp, 'w')
            print >> out, "foo"
            out.close()

            class FauxTransformer(object):
                implements(ITransformer)
                def __call__(self, request, result, encoding):
                    return filestream_iterator(tmp)

            transformer = FauxTransformer()
            provideUtility(transformer)

            published = FauxPublished()
            request = FauxRequest(published)
            applyTransformOnSuccess(FauxPubEvent(request))

            self.failUnless(isinstance(request.response.getBody(), filestream_iterator,))
        finally:
            os.unlink(tmp)
Пример #26
0
 def test_applyTransform_no_utility(self):
     published = FauxPublished()
     request = FauxRequest(published)
     applyTransformOnSuccess(FauxPubEvent(request))
Пример #27
0
 def test_applyTransform_no_utility(self):
     published = FauxPublished()
     request = FauxRequest(published)
     applyTransformOnSuccess(FauxPubEvent(request))