Пример #1
0
    def test_put_no_content_type_header(self):
        class WriteFile(object):
            def __init__(self, context):
                self.context = context
                self._written = ''
                self._closed = False
            mimeType = None
            encoding = None

            def write(self, data):
                self._written += data

            def close(self):
                self._closed = True

        adapterInstance = WriteFile(None)

        def factory(context):
            return adapterInstance

        self.mock_adapter(factory, IRawWriteFile, (Item,))

        request = DAVTestRequest(environ={'BODYFILE': StringIO('data')})

        item = Item('item')
        item.REQUEST = request

        self.replay()

        item.PUT()
        self.assertEqual(None, adapterInstance.mimeType)
        self.assertEqual(None, adapterInstance.encoding)
        self.assertEqual('data', adapterInstance._written)
        self.assertEqual(True, adapterInstance._closed)
Пример #2
0
    def test_get_simple_adapter(self):
        class ReadFileAdapter(object):
            def __init__(self, context):
                self.context = context
            mimeType = 'text/foo'
            encoding = 'latin1'

            def size(self):
                return 10

            def read(self, size=None):
                return '1234567890'
        self.mock_adapter(ReadFileAdapter, IRawReadFile, (Item,))

        request = DAVTestRequest()

        item = Item('item')
        item.REQUEST = request

        self.replay()

        self.assertEqual('1234567890', item.manage_DAVget())
        self.assertEqual(
            'text/foo; charset="latin1"',
            request.response.getHeader('Content-Type')
        )
        self.assertEqual('10', request.response.getHeader('Content-Length'))
Пример #3
0
    def test_get_streaming(self):
        class ReadFileAdapter(object):
            implements(IStreamIterator)

            def __init__(self, context):
                self.context = context
            mimeType = None
            encoding = None

            def size(self):
                return 10

            def read(self, size=None):
                return '1234567890'

        adapterInstance = ReadFileAdapter(None)

        def factory(context):
            return adapterInstance
        self.mock_adapter(factory, IRawReadFile, (Item,))

        request = DAVTestRequest()

        item = Item('item')
        item.REQUEST = request

        self.replay()

        self.assertEqual(adapterInstance, item.manage_DAVget())
Пример #4
0
    def test_put_no_adapter(self):
        request = DAVTestRequest(environ={'BODYFILE': StringIO('')})

        item = Item('item')
        item.REQUEST = request

        self.assertRaises(MethodNotAllowed, item.PUT)
Пример #5
0
    def test_put_no_body(self):
        request = DAVTestRequest()

        item = Item('item')
        item.REQUEST = request

        self.assertRaises(MethodNotAllowed, item.PUT)
Пример #6
0
    def test_put_no_content_type_header(self):
        class WriteFile(object):
            def __init__(self, context):
                self.context = context
                self._written = ''
                self._closed = False

            mimeType = None
            encoding = None

            def write(self, data):
                self._written += data

            def close(self):
                self._closed = True

        adapterInstance = WriteFile(None)

        def factory(context):
            return adapterInstance

        self.mock_adapter(factory, IRawWriteFile, (Item, ))

        request = DAVTestRequest(environ={'BODYFILE': StringIO('data')})

        item = Item('item')
        item.REQUEST = request

        self.replay()

        item.PUT()
        self.assertEqual(None, adapterInstance.mimeType)
        self.assertEqual(None, adapterInstance.encoding)
        self.assertEqual('data', adapterInstance._written)
        self.assertEqual(True, adapterInstance._closed)
Пример #7
0
    def test_get_minimal_adapter(self):
        class ReadFileAdapter(object):
            def __init__(self, context):
                self.context = context

            mimeType = None
            encoding = None

            def size(self):
                return None

            def read(self, size=None):
                return '1234567890'

        self.mock_adapter(ReadFileAdapter, IRawReadFile, (Item, ))

        request = DAVTestRequest()

        item = Item('item')
        item.REQUEST = request

        self.replay()

        self.assertEqual('1234567890', item.manage_DAVget())
        self.assertEqual(None, request.response.getHeader('Content-Type'))
        self.assertEqual(None, request.response.getHeader('Content-Length'))
Пример #8
0
    def test_get_streaming(self):
        class ReadFileAdapter(object):
            implements(IStreamIterator)

            def __init__(self, context):
                self.context = context

            mimeType = None
            encoding = None

            def size(self):
                return 10

            def read(self, size=None):
                return '1234567890'

        adapterInstance = ReadFileAdapter(None)

        def factory(context):
            return adapterInstance

        self.mock_adapter(factory, IRawReadFile, (Item, ))

        request = DAVTestRequest()

        item = Item('item')
        item.REQUEST = request

        self.replay()

        self.assertEqual(adapterInstance, item.manage_DAVget())
Пример #9
0
    def test_get_simple_adapter(self):
        class ReadFileAdapter(object):
            def __init__(self, context):
                self.context = context

            mimeType = 'text/foo'
            encoding = 'latin1'

            def size(self):
                return 10

            def read(self, size=None):
                return '1234567890'

        self.mock_adapter(ReadFileAdapter, IRawReadFile, (Item, ))

        request = DAVTestRequest()

        item = Item('item')
        item.REQUEST = request

        self.replay()

        self.assertEqual('1234567890', item.manage_DAVget())
        self.assertEqual('text/foo; charset="latin1"',
                         request.response.getHeader('Content-Type'))
        self.assertEqual('10', request.response.getHeader('Content-Length'))
Пример #10
0
    def test_put_no_body(self):
        request = DAVTestRequest()

        item = Item('item')
        item.REQUEST = request

        self.assertRaises(MethodNotAllowed, item.PUT)
Пример #11
0
    def test_put_no_adapter(self):
        request = DAVTestRequest(environ={'BODYFILE': StringIO('')})

        item = Item('item')
        item.REQUEST = request

        self.assertRaises(MethodNotAllowed, item.PUT)
Пример #12
0
    def test_get_minimal_adapter(self):
        class ReadFileAdapter(object):
            def __init__(self, context):
                self.context = context

            mimeType = None
            encoding = None

            def size(self):
                return None

            def read(self, size=None):
                return "1234567890"

        self.mock_adapter(ReadFileAdapter, IRawReadFile, (Item,))

        request = DAVTestRequest()

        item = Item("item")
        item.REQUEST = request

        self.replay()

        self.assertEqual("1234567890", item.manage_DAVget())
        self.assertEqual(None, request.response.getHeader("Content-Type"))
        self.assertEqual(None, request.response.getHeader("Content-Length"))
Пример #13
0
    def test_put_no_adapter(self):
        request = DAVTestRequest(environ={"BODYFILE": StringIO("")})

        item = Item("item")
        item.REQUEST = request

        self.replay()

        self.assertRaises(MethodNotAllowed, item.PUT)
Пример #14
0
    def test_put_with_content_type_header_and_charset(self):
        class WriteFile(object):
            def __init__(self, context):
                self.context = context
                self._written = ''
                self._closed = False
            mimeType = None
            encoding = None

            def write(self, data):
                self._written += data

            def close(self):
                self._closed = True

        adapterInstance = WriteFile(None)

        def factory(context):
            return adapterInstance

        events = []

        def handler(event):
            events.append(event)

        self.mock_adapter(factory, IRawWriteFile, (Item,))
        self.mock_handler(handler, (IObjectModifiedEvent,))

        request = DAVTestRequest(
            environ={
                'BODYFILE': StringIO('data'),
                'HTTP_CONTENT_TYPE': 'text/foo; charset="latin1"'
            }
        )

        item = Item('item')
        item.REQUEST = request

        self.replay()

        item.PUT()
        self.assertEqual('text/foo', adapterInstance.mimeType)
        self.assertEqual('latin1', adapterInstance.encoding)
        self.assertEqual('data', adapterInstance._written)
        self.assertEqual(True, adapterInstance._closed)
        self.assertEqual(1, len(events))
Пример #15
0
    def test_put_with_content_type_header_and_charset(self):
        class WriteFile(object):
            def __init__(self, context):
                self.context = context
                self._written = ''
                self._closed = False

            mimeType = None
            encoding = None

            def write(self, data):
                self._written += data

            def close(self):
                self._closed = True

        adapterInstance = WriteFile(None)

        def factory(context):
            return adapterInstance

        events = []

        def handler(event):
            events.append(event)

        self.mock_adapter(factory, IRawWriteFile, (Item, ))
        self.mock_handler(handler, (IObjectModifiedEvent, ))

        request = DAVTestRequest(
            environ={
                'BODYFILE': StringIO('data'),
                'HTTP_CONTENT_TYPE': 'text/foo; charset="latin1"'
            })

        item = Item('item')
        item.REQUEST = request

        self.replay()

        item.PUT()
        self.assertEqual('text/foo', adapterInstance.mimeType)
        self.assertEqual('latin1', adapterInstance.encoding)
        self.assertEqual('data', adapterInstance._written)
        self.assertEqual(True, adapterInstance._closed)
        self.assertEqual(1, len(events))