Esempio n. 1
0
    def test_defaultreadfile_verify_iface(self):

        dummy = DefaultReadFile(ItemDummy())
        self.assertTrue(IStreamIterator.providedBy(dummy))
        self.assertTrue(verifyObject(IStreamIterator, dummy))
        self.assertEqual(b"".join(dummy), b"Portal-Type: foo\n\n")
        self.assertEqual(len(dummy), 18)
Esempio n. 2
0
    def test_readfile_mimetype_no_message_no_primary_field(self):
        class ITest(Interface):
            title = schema.TextLine()

        SCHEMA_CACHE.clear()
        fti_mock = DexterityFTI(u'testtype')
        fti_mock.lookupSchema = Mock(return_value=ITest)
        fti_mock.behaviors = []

        self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype")

        item = Item('item')
        item.portal_type = 'testtype'

        readfile = DefaultReadFile(item)

        self.assertEqual('text/plain', readfile.mimeType)
    def test_readfile_mimetype_no_message_no_primary_field(self):
        class ITest(Interface):
            title = schema.TextLine()

        SCHEMA_CACHE.clear()
        fti_mock = self.mocker.proxy(DexterityFTI(u'testtype'))
        self.expect(fti_mock.lookupSchema()).result(ITest)
        self.expect(fti_mock.behaviors).result([])

        self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype")

        item = Item('item')
        item.portal_type = 'testtype'

        readfile = DefaultReadFile(item)

        self.replay()

        self.assertEqual('text/plain', readfile.mimeType)
Esempio n. 4
0
    def test_readfile_mimetype_additional_schemata(self):
        # This is mostly a test that utils.iterSchemata takes
        # IBehaviorAssignable into account.

        class ITest(Interface):
            title = schema.TextLine()

        class ITestAdditional(Interface):
            # Additional behavior on an item
            body = schema.Text()
            stuff = schema.Bytes()

        alsoProvides(ITestAdditional['body'], IPrimaryField)
        alsoProvides(ITestAdditional['stuff'], IPrimaryField)
        alsoProvides(ITestAdditional, IFormFieldProvider)

        class MockBehavior(object):
            def __init__(self, iface):
                self.interface = iface

        class MockBehaviorAssignable(object):
            def __init__(self, context):
                self.context = context

            def enumerateBehaviors(self):
                yield MockBehavior(ITestAdditional)

        SCHEMA_CACHE.clear()
        fti_mock = self.mocker.mock(DexterityFTI)
        self.expect(fti_mock.lookupSchema()).result(ITest)
        self.expect(fti_mock.lookupSchema()).result(ITest)

        self.mock_adapter(MockBehaviorAssignable, IBehaviorAssignable,
                          (Item, ))
        self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype")
        item = Item('item')
        item.portal_type = 'testtype'

        readfile = DefaultReadFile(item)

        self.replay()

        self.assertEquals('message/rfc822', readfile.mimeType)
Esempio n. 5
0
    def test_readfile_mimetype_no_message_multiple_primary_fields(self):
        class ITest(Interface):
            title = schema.TextLine()
            body = schema.Text()
            stuff = schema.Bytes()

        alsoProvides(ITest['body'], IPrimaryField)
        alsoProvides(ITest['stuff'], IPrimaryField)

        SCHEMA_CACHE.clear()
        fti_mock = DexterityFTI(u'testtype')
        fti_mock.lookupSchema = Mock(return_value=ITest)

        self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype")
        item = Item('item')
        item.portal_type = 'testtype'

        readfile = DefaultReadFile(item)

        self.assertEqual('message/rfc822', readfile.mimeType)
    def test_readfile_operations(self):

        class ITest(Interface):
            title = schema.TextLine()
            body = schema.Text()
        alsoProvides(ITest['body'], IPrimaryField)

        fti_mock = self.mocker.proxy(DexterityFTI(u'testtype'))
        self.expect(fti_mock.lookupSchema()).result(ITest).count(0, None)
        self.expect(
            fti_mock.behaviors
        ).result([ITestBehavior.__identifier__]).count(0, None)

        self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype")

        item = Item('item')
        item.portal_type = 'testtype'

        readfile = DefaultReadFile(item)

        message = Message()
        message['title'] = 'Test title'
        message['foo'] = '10'
        message['bar'] = 'xyz'
        message.set_payload('<p>body</p>')

        constructMessageFromSchemata_mock = self.mocker.replace(
            'plone.rfc822.constructMessageFromSchemata'
        )
        self.expect(
            constructMessageFromSchemata_mock(item, ANY)
        ).result(message)

        self.replay()

        body = """\
title: Test title
foo: 10
bar: xyz
Portal-Type: testtype

<p>body</p>"""

        # iter
        # next

        self.assertEqual(body, readfile.read())
        self.assertEqual(69L, readfile.size())
        self.assertEqual('utf-8', readfile.encoding)
        self.assertEqual(None, readfile.name)
        self.assertEqual('text/plain', readfile.mimeType)

        readfile.seek(2)
        self.assertEqual(2, readfile.tell())
        self.assertEqual('tl', readfile.read(2))
        self.assertEqual(4, readfile.tell())

        readfile.seek(0, 2)
        self.assertEqual(69, readfile.tell())

        readfile.seek(0)
        self.assertEqual('foo: 10\n', readfile.readlines()[1])

        readfile.seek(0)
        self.assertEqual('foo: 10\n', readfile.readlines(100)[1])

        readfile.seek(0)
        self.assertEqual('title: Test title\n', readfile.readline())

        readfile.seek(0)
        self.assertEqual('title: Test title\n', readfile.readline(100))

        readfile.seek(0)
        self.assertEqual('foo: 10\n', list(iter(readfile))[1])

        self.assertEqual(False, readfile.closed)
        readfile.close()
    def test_readfile_operations(self):
        class ITest(Interface):
            title = schema.TextLine()
            body = schema.Text()

        alsoProvides(ITest['body'], IPrimaryField)

        fti_mock = self.mocker.proxy(DexterityFTI(u'testtype'))
        self.expect(fti_mock.lookupSchema()).result(ITest).count(0, None)
        self.expect(fti_mock.behaviors).result([ITestBehavior.__identifier__
                                                ]).count(0, None)

        self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype")

        item = Item('item')
        item.portal_type = 'testtype'

        readfile = DefaultReadFile(item)

        message = Message()
        message['title'] = 'Test title'
        message['foo'] = '10'
        message['bar'] = 'xyz'
        message.set_payload('<p>body</p>')

        constructMessageFromSchemata_mock = self.mocker.replace(
            'plone.rfc822.constructMessageFromSchemata')
        self.expect(constructMessageFromSchemata_mock(item,
                                                      ANY)).result(message)

        self.replay()

        body = """\
title: Test title
foo: 10
bar: xyz
Portal-Type: testtype

<p>body</p>"""

        # iter
        # next

        self.assertEqual(body, readfile.read())
        self.assertEqual(69L, readfile.size())
        self.assertEqual('utf-8', readfile.encoding)
        self.assertEqual(None, readfile.name)
        self.assertEqual('text/plain', readfile.mimeType)

        readfile.seek(2)
        self.assertEqual(2, readfile.tell())
        self.assertEqual('tl', readfile.read(2))
        self.assertEqual(4, readfile.tell())

        readfile.seek(0, 2)
        self.assertEqual(69, readfile.tell())

        readfile.seek(0)
        self.assertEqual('foo: 10\n', readfile.readlines()[1])

        readfile.seek(0)
        self.assertEqual('foo: 10\n', readfile.readlines(100)[1])

        readfile.seek(0)
        self.assertEqual('title: Test title\n', readfile.readline())

        readfile.seek(0)
        self.assertEqual('title: Test title\n', readfile.readline(100))

        readfile.seek(0)
        self.assertEqual('foo: 10\n', list(iter(readfile))[1])

        self.assertEqual(False, readfile.closed)
        readfile.close()
Esempio n. 8
0
        def test_readfile_operations(self):
            class ITest(Interface):
                title = schema.TextLine()
                body = schema.Text()

            alsoProvides(ITest['body'], IPrimaryField)

            fti_mock = DexterityFTI(u'testtype')
            fti_mock.lookupSchema = Mock(return_value=ITest)
            fti_mock.behaviors = [ITestBehavior.__identifier__]

            self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype")

            item = Item('item')
            item.portal_type = 'testtype'

            readfile = DefaultReadFile(item)

            message = Message()
            message['title'] = 'Test title'
            message['foo'] = '10'
            message['bar'] = 'xyz'
            message.set_payload('<p>body</p>')

            from plone.rfc822 import constructMessageFromSchemata
            self.patch_global(constructMessageFromSchemata,
                              return_value=message)

            body = b"""\
title: Test title
foo: 10
bar: xyz
Portal-Type: testtype

<p>body</p>"""

            # iter
            # next

            self.assertEqual(body, readfile.read())
            self.assertEqual(69, readfile.size())
            self.assertEqual('utf-8', readfile.encoding)
            self.assertEqual(None, readfile.name)
            self.assertEqual('text/plain', readfile.mimeType)

            readfile.seek(2)
            self.assertEqual(2, readfile.tell())
            self.assertEqual(b'tl', readfile.read(2))
            self.assertEqual(4, readfile.tell())

            readfile.seek(0, 2)
            self.assertEqual(69, readfile.tell())

            readfile.seek(0)
            self.assertEqual(b'foo: 10\n', readfile.readlines()[1])

            readfile.seek(0)
            self.assertEqual(b'foo: 10\n', readfile.readlines(100)[1])

            readfile.seek(0)
            self.assertEqual(b'title: Test title\n', readfile.readline())

            readfile.seek(0)
            self.assertEqual(b'title: Test title\n', readfile.readline(100))

            readfile.seek(0)
            self.assertEqual(b'foo: 10\n', list(iter(readfile))[1])

            self.assertEqual(False, readfile.closed)
            readfile.close()
Esempio n. 9
0
    def test_readfile_operations(self):
        class ITest(Interface):
            title = schema.TextLine()
            body = schema.Text()

        alsoProvides(ITest["body"], IPrimaryField)

        fti_mock = self.mocker.proxy(DexterityFTI(u"testtype"))
        self.expect(fti_mock.lookupSchema()).result(ITest).count(0, None)
        self.expect(fti_mock.behaviors).result([ITestBehavior.__identifier__]).count(0, None)

        self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype")

        item = Item("item")
        item.portal_type = "testtype"

        readfile = DefaultReadFile(item)

        message = Message()
        message["title"] = "Test title"
        message["foo"] = "10"
        message["bar"] = "xyz"
        message.set_payload("<p>body</p>")

        constructMessageFromSchemata_mock = self.mocker.replace("plone.rfc822.constructMessageFromSchemata")
        self.expect(constructMessageFromSchemata_mock(item, ANY)).result(message)

        self.replay()

        body = """\
title: Test title
foo: 10
bar: xyz
Portal-Type: testtype

<p>body</p>"""

        # iter
        # next

        self.assertEqual(body, readfile.read())
        self.assertEqual(69L, readfile.size())
        self.assertEqual("utf-8", readfile.encoding)
        self.assertEqual(None, readfile.name)
        self.assertEqual("text/plain", readfile.mimeType)

        readfile.seek(2)
        self.assertEqual(2, readfile.tell())
        self.assertEqual("tl", readfile.read(2))
        self.assertEqual(4, readfile.tell())

        readfile.seek(0, 2)
        self.assertEqual(69, readfile.tell())

        readfile.seek(0)
        self.assertEqual("foo: 10\n", readfile.readlines()[1])

        readfile.seek(0)
        self.assertEqual("foo: 10\n", readfile.readlines(100)[1])

        readfile.seek(0)
        self.assertEqual("title: Test title\n", readfile.readline())

        readfile.seek(0)
        self.assertEqual("title: Test title\n", readfile.readline(100))

        readfile.seek(0)
        self.assertEqual("foo: 10\n", list(iter(readfile))[1])

        self.assertEqual(False, readfile.closed)
        readfile.close()