def test_set_showroom_vars_correctly(self, browser):
        self.login(self.regular_user, browser=browser)

        catalog = api.portal.get_tool('portal_catalog')
        search_view = getMultiAdapter((self.portal, self.request),
                                      name="search")

        brains = catalog({
            'portal_type': 'opengever.document.document',
            'sort_on': 'sortable_title',
            'SearchableText': "Foo"
        })

        brains = [
            obj2brain(obj)
            for obj in [self.document, self.dossier, self.subdocument]
        ]
        search_view.calculate_showroom_configuration(IContentListing(brains))
        self.assertEqual(2, search_view.number_of_documents)
        self.assertEqual(0, search_view.offset)

        brains = [obj2brain(obj) for obj in [self.task, self.subdossier]]
        search_view.calculate_showroom_configuration(IContentListing(brains))
        self.assertEqual(0, search_view.number_of_documents)
        self.assertEqual(0, search_view.offset)
    def test_author_indexers(self):
        """check the author indexers."""

        doc1 = createContentInContainer(self.portal,
                                        'opengever.document.document',
                                        title=u"Doc One",
                                        document_author=u'Hugo Boss',
                                        document_date=datetime.date(
                                            2011, 1, 1))

        self.assertEquals(obj2brain(doc1).document_author, 'Hugo Boss')
        self.assertEquals(
            index_data_for(doc1).get('sortable_author'), u'Hugo Boss')

        # without a author
        doc1.document_author = None
        doc1.reindexObject()

        self.assertEquals(obj2brain(doc1).document_author, None)
        self.assertEquals(index_data_for(doc1).get('sortable_author'), u'')

        # with a non-ascii characters including author

        doc1.document_author = u'H\xfcgo B\xf6ss'
        doc1.reindexObject()

        self.assertEquals(
            obj2brain(doc1).document_author, 'H\xc3\xbcgo B\xc3\xb6ss')
        self.assertEquals(
            index_data_for(doc1).get('sortable_author'), u'H\xfcgo B\xf6ss')
示例#3
0
    def test_full_values_rendering(self):
        self.listing.items = [obj2brain(self.dossier),
                               obj2brain(self.subdossier)]

        table = lxml.html.fromstring(self.listing.template())
        rows = table.xpath(CSSSelector('tbody tr').path)

        self.assert_row_values(
            ['Client1 1.1 / 1',
             '1',
             '1.1. Repository XY',
             'Dossier A',
             'Admin Unit 1 / Boss Hugo (hugo.boss)',
             'dossier-state-resolved',
             '01.11.2013',
             '31.12.2013'], rows[0])

        self.assert_row_values(
            ['Client1 1.1 / 1.1',
             '2',
             '1.1. Repository XY',
             'Dossier B',
             'Admin Unit 1 / Boss Hugo (hugo.boss)',
             'dossier-state-active',
             '01.11.2013',
             ''], rows[1])
示例#4
0
    def test_Title_on_brains_uses_Title_when_type_does_not_support_translated_title(self, browser):
        dossier = create(Builder('dossier').titled(u'F\xfchrung'))
        set_preferred_language(self.portal.REQUEST, 'de')
        self.assertEquals("F\xc3\xbchrung", obj2brain(dossier).Title)

        set_preferred_language(self.portal.REQUEST, 'fr')
        self.assertEquals("F\xc3\xbchrung", obj2brain(dossier).Title)
示例#5
0
    def test_bulk_checkout(self):
        doc1 = createContentInContainer(
            self.portal,
            'opengever.document.document',
            title=u'Document1',
            document_author=u'Hugo Boss',
            document_date=datetime.date(2011, 1, 1),
            file=NamedBlobFile('bla bla', filename=u'test.txt'))
        doc2 = createContentInContainer(
            self.portal,
            'opengever.document.document',
            title=u'Document2',
            document_author=u'Hugo Boss',
            document_date=datetime.date(2011, 1, 1),
            file=NamedBlobFile('bla bla', filename=u'test.txt'))

        self.portal.REQUEST['paths'] = [
            obj2brain(doc1).getPath(),
            obj2brain(doc2).getPath(),
        ]
        view = self.portal.restrictedTraverse('@@checkout_documents').render()
        self.assertEquals('http://nohost/plone#documents', view)

        self.assertEquals(TEST_USER_ID, self.get_manager(doc1).checked_out())
        self.assertEquals(TEST_USER_ID, self.get_manager(doc2).checked_out())
    def test_multi_checkin_does_not_checkin_locked_documents(self, browser):
        self.login(self.regular_user, browser)

        browser.open(self.document, view='tabbedview_view-overview')
        browser.find('Checkout and edit').click()

        browser.open(self.subdocument, view='tabbedview_view-overview')
        browser.find('Checkout and edit').click()

        lockable = IRefreshableLockable(self.document)
        lockable.lock()

        browser.open(
            self.dossier,
            method='POST',
            data={
                'paths': [
                    obj2brain(self.document).getPath(),
                    obj2brain(self.subdocument).getPath(),
                    ],
                'checkin_without_comment:method': 1,
                '_authenticator': createToken(),
                },
            )

        manager = getMultiAdapter((self.document, self.portal.REQUEST), ICheckinCheckoutManager)
        self.assertEquals('kathi.barfuss', manager.get_checked_out_by())

        manager = getMultiAdapter((self.subdocument, self.portal.REQUEST), ICheckinCheckoutManager)
        self.assertEquals(None, manager.get_checked_out_by())

        self.assertEquals([u'Could not check in document Vertr\xe4gsentwurf'],
                          error_messages())
示例#7
0
    def test_bulk_checkout(self):
        self.portal.REQUEST["paths"] = [obj2brain(self.doc1).getPath(), obj2brain(self.doc2).getPath()]
        view = self.portal.restrictedTraverse("@@checkout_documents").render()
        self.assertEquals("http://nohost/plone#documents", view)

        self.assertEquals(TEST_USER_ID, self.get_manager(self.doc1).get_checked_out_by())
        self.assertEquals(TEST_USER_ID, self.get_manager(self.doc2).get_checked_out_by())
示例#8
0
    def test_full_values_rendering(self):
        self.listing.brains = [obj2brain(self.dossier),
                               obj2brain(self.subdossier)]

        table = lxml.html.fromstring(self.listing.template())
        rows = table.xpath(CSSSelector('tbody tr').path)

        self.assertEquals(
            ['OG 1 / 1',
             '1',
             '1. Repository XY',
             'Dossier A',
             'Client1 / Boss Hugo (hugo.boss)',
             'dossier-state-resolved',
             '01.11.2013',
             '31.12.2013'],
            [value.text_content().strip() for value in rows[0].xpath(CSSSelector('td').path)])

        self.assertEquals(
            ['OG 1 / 1.1',
             '2',
             '1. Repository XY',
             'Dossier B',
             'Client1 / Boss Hugo (hugo.boss)',
             'dossier-state-active',
             '01.11.2013',
             ''],
            [value.text_content().strip() for value in rows[1].xpath(CSSSelector('td').path)])
示例#9
0
    def test_multi_checkin_from_tabbedview_with_comment(self, browser):
        document2 = create(Builder("document").checked_out().within(self.dossier))

        browser.login().open(
            self.dossier,
            data={
                "paths": [obj2brain(self.document).getPath(), obj2brain(document2).getPath()],
                "checkin_documents:method": 1,
                "_authenticator": createToken(),
            },
        )

        # fill and submit checkin form
        browser.fill({"Journal Comment Describe, why you checkin the selected documents": "Checkini"})
        browser.css("#form-buttons-button_checkin").first.click()

        manager1 = getMultiAdapter((self.document, self.portal.REQUEST), ICheckinCheckoutManager)
        self.assertEquals(None, manager1.get_checked_out_by())
        manager2 = getMultiAdapter((document2, self.portal.REQUEST), ICheckinCheckoutManager)
        self.assertEquals(None, manager2.get_checked_out_by())

        # check last history entry to verify the checkin
        repository_tool = getToolByName(document2, "portal_repository")
        history = repository_tool.getHistory(document2)
        last_entry = repository_tool.retrieve(document2, len(history) - 1)
        self.assertEquals("Checkini", last_entry.comment)
    def test_reference_number_is_updated_in_catalog(self, browser):
        self.login(self.administrator, browser)
        self.assertEquals('Client1 1.1', obj2brain(self.leaf_repofolder).reference)

        browser.open(self.leaf_repofolder, view='edit')
        browser.fill({'Reference Prefix': u'7'}).save()
        self.assertEquals('Client1 1.7', obj2brain(self.leaf_repofolder).reference)
    def test_multi_checkin_from_tabbedview_with_comment(self, browser):
        document2 = create(Builder("document")
                           .checked_out()
                           .within(self.dossier))

        browser.login().open(
            self.dossier,
            data={'paths': [obj2brain(self.document).getPath(),
                            obj2brain(document2).getPath()],
                  'checkin_documents:method': 1,
                  '_authenticator': createToken()})

        # fill and submit checkin form
        browser.fill({
            'Journal Comment Describe, why you checkin the selected documents':
            'Checkini'
            })
        browser.css('#form-buttons-button_checkin').first.click()

        manager1 = getMultiAdapter((self.document, self.portal.REQUEST),
                                   ICheckinCheckoutManager)
        self.assertEquals(None, manager1.get_checked_out_by())
        manager2 = getMultiAdapter((document2, self.portal.REQUEST),
                                   ICheckinCheckoutManager)
        self.assertEquals(None, manager2.get_checked_out_by())

        # check last history entry to verify the checkin
        repository_tool = getToolByName(document2, 'portal_repository')
        history = repository_tool.getHistory(document2)
        last_entry = repository_tool.retrieve(document2, len(history)-1)
        self.assertEquals('Checkini', last_entry.comment)
示例#12
0
    def test_author_indexers(self):
        """check the author indexers."""

        doc1 = createContentInContainer(
            self.portal, 'opengever.document.document',
            title=u"Doc One", document_author=u'Hugo Boss',
            document_date=datetime.date(2011, 1, 1))

        self.assertEquals(obj2brain(doc1).document_author, 'Hugo Boss')
        self.assertEquals(
            index_data_for(doc1).get('sortable_author'),
            u'Hugo Boss')

        # without a author
        doc1.document_author = None
        doc1.reindexObject()

        self.assertEquals(obj2brain(doc1).document_author, None)
        self.assertEquals(
            index_data_for(doc1).get('sortable_author'), u'')

        # with a non-ascii characters including author

        doc1.document_author = u'H\xfcgo B\xf6ss'
        doc1.reindexObject()

        self.assertEquals(
            obj2brain(doc1).document_author, 'H\xc3\xbcgo B\xc3\xb6ss')
        self.assertEquals(
            index_data_for(doc1).get('sortable_author'), u'H\xfcgo B\xf6ss')
示例#13
0
    def test_multi_checkin_does_not_checkin_locked_documents(self, browser):
        self.login(self.regular_user, browser)

        browser.open(self.document, view='tabbedview_view-overview')
        browser.find('Checkout and edit').click()

        browser.open(self.subdocument, view='tabbedview_view-overview')
        browser.find('Checkout and edit').click()

        lockable = IRefreshableLockable(self.document)
        lockable.lock()

        browser.open(
            self.dossier,
            method='POST',
            data={
                'paths': [
                    obj2brain(self.document).getPath(),
                    obj2brain(self.subdocument).getPath(),
                    ],
                'checkin_without_comment:method': 1,
                '_authenticator': createToken(),
                },
            )

        manager = getMultiAdapter((self.document, self.portal.REQUEST), ICheckinCheckoutManager)
        self.assertEquals('kathi.barfuss', manager.get_checked_out_by())

        manager = getMultiAdapter((self.subdocument, self.portal.REQUEST), ICheckinCheckoutManager)
        self.assertEquals(None, manager.get_checked_out_by())

        self.assertEquals([u'Could not check in document Vertr\xe4gsentwurf'],
                          error_messages())
示例#14
0
    def test_assigned_client(self):
        self.assertEquals(obj2brain(self.task).assigned_client, 'client1')

        self.task.responsible = 'hugo.boss'
        self.task.responsible_client = 'client2'
        self.task.reindexObject()

        self.assertEquals(obj2brain(self.task).assigned_client, 'client2')
示例#15
0
    def test_is_subtask(self):
        self.subtask = create(
            Builder("task").within(
                self.task).titled("Test task 1").having(task_type='comment'))

        self.assertFalse(obj2brain(self.task).is_subtask)

        self.assertTrue(obj2brain(self.subtask).is_subtask)
示例#16
0
    def test_is_document(self):
        document = create(Builder('document'))
        mail = create(Builder('mail'))
        dossier = create(Builder('dossier'))

        self.assertTrue(IContentListingObject(obj2brain(document)).is_document)
        self.assertFalse(IContentListingObject(obj2brain(mail)).is_document)
        self.assertFalse(IContentListingObject(obj2brain(dossier)).is_document)
    def test_is_document(self):
        document = create(Builder('document'))
        mail = create(Builder('mail'))
        dossier = create(Builder('dossier'))

        self.assertTrue(IContentListingObject(obj2brain(document)).is_document)
        self.assertFalse(IContentListingObject(obj2brain(mail)).is_document)
        self.assertFalse(IContentListingObject(obj2brain(dossier)).is_document)
示例#18
0
    def test_getIcon_returns_none_for_every_contenttype(self):
        self.login(self.regular_user)

        self.assertIsNone(
            IContentListingObject(obj2brain(self.dossier)).getIcon(), )

        self.assertIsNone(
            IContentListingObject(obj2brain(self.document)).getIcon(), )
    def test_Title_on_brains_uses_Title_when_type_does_not_support_translated_title(
            self, browser):
        dossier = create(Builder('dossier').titled(u'F\xfchrung'))
        set_preferred_language(self.portal.REQUEST, 'de')
        self.assertEquals("F\xc3\xbchrung", obj2brain(dossier).Title)

        set_preferred_language(self.portal.REQUEST, 'fr')
        self.assertEquals("F\xc3\xbchrung", obj2brain(dossier).Title)
示例#20
0
    def test_is_subtask(self):
        self.subtask = create(Builder("task").within(self.task)
                                             .titled("Test task 1")
                                             .having(task_type='comment'))

        self.assertFalse(obj2brain(self.task).is_subtask)

        self.assertTrue(obj2brain(self.subtask).is_subtask)
示例#21
0
    def test_is_removed(self):
        document_a = create(Builder('document'))
        document_b = create(Builder('document').removed())
        dossier = create(Builder('dossier'))

        self.assertFalse(IContentListingObject(obj2brain(document_a)).is_removed)
        self.assertTrue(
            IContentListingObject(obj2brain(document_b, unrestricted=True)).is_removed)
        self.assertFalse(IContentListingObject(obj2brain(dossier)).is_removed)
示例#22
0
    def test_labels_are_translated_and_show_as_table_headers(self):
        self.listing.brains = [obj2brain(self.task), obj2brain(self.task)]

        table = lxml.html.fromstring(self.listing.template())
        cols = table.xpath(CSSSelector('thead th').path)

        self.assertEquals(
            ['No.', 'Task type', 'Issuer', 'Responsible', 'State', 'Title', 'Deadline'],
            [col.text_content().strip() for col in cols])
    def test_getIcon_returns_none_for_every_contenttype(self):
        dossier = create(Builder('dossier'))
        document = create(Builder('document'))

        self.assertEquals(None,
                          IContentListingObject(obj2brain(dossier)).getIcon())

        self.assertEquals(None,
                          IContentListingObject(obj2brain(document)).getIcon())
示例#24
0
    def test_date_of_completion(self):
        self.assertEquals(
            obj2brain(self.task).date_of_completion, datetime(1970, 1, 1))

        self.task.date_of_completion = datetime(2012, 2, 2)
        self.task.reindexObject()

        self.assertEquals(
            obj2brain(self.task).date_of_completion, datetime(2012, 2, 2))
示例#25
0
    def test_get_repository_title_returns_the_title_of_the_first_parental_repository_folder(
            self):
        self.assertEquals(
            '1.1. Repository XY',
            self.listing.get_repository_title(obj2brain(self.dossier)))

        self.assertEquals(
            '1.1. Repository XY',
            self.listing.get_repository_title(obj2brain(self.subdossier)))
示例#26
0
    def test_get_repository_title_returns_the_title_of_the_first_parental_repository_folder(self):
        self.assertEquals(
            '1.1. Repository XY',
            self.listing.get_repository_title(obj2brain(self.dossier)))

        self.assertEquals(
            '1.1. Repository XY',
            self.listing.get_repository_title(
                obj2brain(self.subdossier)))
示例#27
0
    def test_reference_number_is_updated_in_catalog(self, browser):
        self.login(self.administrator, browser)
        self.assertEquals('Client1 1.1',
                          obj2brain(self.leaf_repofolder).reference)

        browser.open(self.leaf_repofolder, view='edit')
        browser.fill({'Reference Prefix': u'7'}).save()
        self.assertEquals('Client1 1.7',
                          obj2brain(self.leaf_repofolder).reference)
    def test_Title_on_brains_uses_Title_when_type_does_not_support_translated_title(self, browser):
        self.login(self.regular_user)

        set_preferred_language(self.portal.REQUEST, 'de-ch')
        self.assertEquals('Vertr\xc3\xa4ge mit der kantonalen Finanzverwaltung',
                          obj2brain(self.dossier).Title)

        set_preferred_language(self.portal.REQUEST, 'fr-ch')
        self.assertEquals('Vertr\xc3\xa4ge mit der kantonalen Finanzverwaltung',
                          obj2brain(self.dossier).Title)
示例#29
0
    def test_reference_number_of_children_is_updated_in_catalog(self, browser):
        self.login(self.administrator, browser)
        self.assertEqual(
            self.leaf_repofolder, aq_parent(aq_inner(self.dossier)),
            'Fixture: expected self.dossier to be within self.leaf_repofolder')
        self.assertEquals('Client1 1.1 / 1', obj2brain(self.dossier).reference)

        browser.open(self.leaf_repofolder, view='edit')
        browser.fill({'Reference Prefix': u'7'}).save()
        self.assertEquals('Client1 1.7 / 1', obj2brain(self.dossier).reference)
示例#30
0
    def test_configured_width_is_set_in_the_colgroup(self):
        self.listing.brains = [obj2brain(self.dossier),
                               obj2brain(self.subdossier)]

        table = lxml.html.fromstring(self.listing.template())
        cols = table.xpath(CSSSelector('col').path)

        self.assertEquals(
            ['10%', '5%', '20%', '25%', '20%', '10%', '5%', '5%'],
            [col.get('width') for col in cols])
示例#31
0
    def test_assigned_client(self):
        self.assertEquals(
            obj2brain(self.task).assigned_client, 'client1')

        self.task.responsible = 'hugo.boss'
        self.task.responsible_client = 'client2'
        self.task.reindexObject()

        self.assertEquals(
            obj2brain(self.task).assigned_client, 'client2')
示例#32
0
    def test_ContentTypeClass_returns_the_contenttype_icon_css_class(self):
        dossier = create(Builder('dossier'))
        document = create(Builder('document'))

        self.assertEquals(
            'contenttype-opengever-dossier-businesscasedossier',
            IContentListingObject(obj2brain(dossier)).ContentTypeClass())

        self.assertEquals(
            'contenttype-opengever-document-document',
            IContentListingObject(obj2brain(document)).ContentTypeClass())
    def test_getIcon_returns_none_for_every_contenttype(self):
        dossier = create(Builder('dossier'))
        document = create(Builder('document'))

        self.assertEquals(
            None,
            IContentListingObject(obj2brain(dossier)).getIcon())

        self.assertEquals(
            None,
            IContentListingObject(obj2brain(document)).getIcon())
示例#34
0
    def test_is_trashed(self):
        self.grant('Administrator')
        document_a = create(Builder('document'))
        document_b = create(Builder('document').trashed())

        dossier = create(Builder('dossier'))

        self.assertFalse(IContentListingObject(obj2brain(document_a)).is_trashed)
        self.assertTrue(
            IContentListingObject(obj2brain(document_b, unrestricted=True)).is_trashed)
        self.assertFalse(IContentListingObject(obj2brain(dossier)).is_trashed)
示例#35
0
    def test_labels_are_translated_and_show_as_table_headers(self):
        self.listing.brains = [obj2brain(self.dossier),
                               obj2brain(self.subdossier)]

        table = lxml.html.fromstring(self.listing.template())
        cols = table.xpath(CSSSelector('thead th').path)

        self.assertEquals(
            ['Reference number', 'No.', 'Repositoryfolder', 'Title',
             'Responsible', 'State', 'Start', 'End'],
            [col.text_content().strip() for col in cols])
    def test_reference_number_of_children_is_updated_in_catalog(self, browser):
        self.login(self.administrator, browser)
        self.assertEqual(
            self.leaf_repofolder,
            aq_parent(aq_inner(self.dossier)),
            'Fixture: expected self.dossier to be within self.leaf_repofolder')
        self.assertEquals('Client1 1.1 / 1', obj2brain(self.dossier).reference)

        browser.open(self.leaf_repofolder, view='edit')
        browser.fill({'Reference Prefix': u'7'}).save()
        self.assertEquals('Client1 1.7 / 1', obj2brain(self.dossier).reference)
    def test_is_removed(self):
        document_a = create(Builder('document'))
        document_b = create(Builder('document').removed())
        dossier = create(Builder('dossier'))

        self.assertFalse(
            IContentListingObject(obj2brain(document_a)).is_removed)
        self.assertTrue(
            IContentListingObject(obj2brain(document_b,
                                            unrestricted=True)).is_removed)
        self.assertFalse(IContentListingObject(obj2brain(dossier)).is_removed)
示例#38
0
    def test_date_of_completion(self):
        self.assertEquals(
            obj2brain(self.task).date_of_completion,
            datetime(1970, 1, 1))

        self.task.date_of_completion = datetime(2012, 2, 2)
        self.task.reindexObject()

        self.assertEquals(
            obj2brain(self.task).date_of_completion,
            datetime(2012, 2, 2))
示例#39
0
    def test_is_document(self):
        self.login(self.regular_user)

        self.assertTrue(
            IContentListingObject(obj2brain(self.document)).is_document, )

        self.assertFalse(
            IContentListingObject(obj2brain(self.mail_eml)).is_document, )

        self.assertFalse(
            IContentListingObject(obj2brain(self.dossier)).is_document, )
示例#40
0
    def test_trash_items_mark_items_as_trashed(self, browser):
        self.login(self.regular_user, browser=browser)

        data = self.make_path_param(self.subdocument)
        data['_authenticator'] = createToken()
        browser.open(self.dossier, view="trashed", data=data)

        self.assertFalse(ITrashed.providedBy(self.document))
        self.assertFalse(obj2brain(self.document).trashed)

        self.assertTrue(ITrashed.providedBy(self.subdocument))
        self.assertTrue(obj2brain(self.subdocument, unrestricted=True).trashed)
示例#41
0
    def test_trash_items_mark_items_as_trashed(self, browser):
        self.login(self.regular_user, browser=browser)

        data = self.make_path_param(self.subdocument)
        data['_authenticator'] = createToken()
        browser.open(self.dossier, view="trashed", data=data)

        self.assertFalse(ITrashed.providedBy(self.document))
        self.assertFalse(obj2brain(self.document).trashed)

        self.assertTrue(ITrashed.providedBy(self.subdocument))
        self.assertTrue(obj2brain(self.subdocument, unrestricted=True).trashed)
    def test_filesize_indexers(self):
        document = create(
            Builder("document").attach_file_containing(u"content",
                                                       name=u"file.txt"))
        document.reindexObject()
        self.assertEqual(7, index_data_for(document).get('filesize'))
        self.assertEqual(7, obj2brain(document).filesize)

        document.file = None
        document.reindexObject()
        self.assertEqual(0, index_data_for(document).get('filesize'))
        self.assertEqual(0, obj2brain(document).filesize)
示例#43
0
    def test_ContentTypeClass_returns_the_contenttype_icon_css_class(self):
        self.login(self.regular_user)

        self.assertEquals(
            'contenttype-opengever-dossier-businesscasedossier',
            IContentListingObject(obj2brain(self.dossier)).ContentTypeClass(),
        )

        self.assertEquals(
            'icon-docx',
            IContentListingObject(obj2brain(self.document)).ContentTypeClass(),
        )
示例#44
0
    def test_by_brain_queries_adminunit_dependent(self):
        self.login(self.regular_user)

        self.assertEquals(
            self.task.get_sql_object(),
            Task.query.by_brain(obj2brain(self.task)))

        # manually change admin_unit of task
        self.task.get_sql_object().admin_unit_id = 'additional'

        with self.assertRaises(NoResultFound):
            self.assertIsNone(Task.query.by_brain(obj2brain(self.task)))
    def test_is_trashed(self):
        self.grant('Administrator')
        document_a = create(Builder('document'))
        document_b = create(Builder('document').trashed())

        dossier = create(Builder('dossier'))

        self.assertFalse(
            IContentListingObject(obj2brain(document_a)).is_trashed)
        self.assertTrue(
            IContentListingObject(obj2brain(document_b,
                                            unrestricted=True)).is_trashed)
        self.assertFalse(IContentListingObject(obj2brain(dossier)).is_trashed)
    def test_bulk_checkout(self):
        self.portal.REQUEST['paths'] = [
            obj2brain(self.doc1).getPath(),
            obj2brain(self.doc2).getPath(),
        ]
        view = self.portal.restrictedTraverse(
            '@@checkout_documents')()
        self.assertEquals('http://nohost/plone#documents', view)

        self.assertEquals(
            TEST_USER_ID, self.get_manager(self.doc1).get_checked_out_by())
        self.assertEquals(
            TEST_USER_ID, self.get_manager(self.doc2).get_checked_out_by())
示例#47
0
    def test_filesize_indexers(self):
        document = create(
            Builder("document")
            .attach_file_containing(u"content", name=u"file.txt")
        )
        document.reindexObject()
        self.assertEqual(7, index_data_for(document).get('filesize'))
        self.assertEqual(7, obj2brain(document).filesize)

        document.file = None
        document.reindexObject()
        self.assertEqual(0, index_data_for(document).get('filesize'))
        self.assertEqual(0, obj2brain(document).filesize)
    def test_Title_on_brains_uses_Title_when_type_does_not_support_translated_title(
            self, browser):
        self.login(self.regular_user)

        set_preferred_language(self.portal.REQUEST, 'de-ch')
        self.assertEquals(
            'Vertr\xc3\xa4ge mit der kantonalen Finanzverwaltung',
            obj2brain(self.dossier).Title)

        set_preferred_language(self.portal.REQUEST, 'fr-ch')
        self.assertEquals(
            'Vertr\xc3\xa4ge mit der kantonalen Finanzverwaltung',
            obj2brain(self.dossier).Title)
    def test_filename_indexers(self):
        document = create(
            Builder("document").titled(
                u'D\xf6k\xfcm\xe4nt').attach_file_containing(u"content",
                                                             name=u"file.txt"))
        document.reindexObject()
        self.assertEqual(u'Doekuemaent.txt', filename_indexer(document)())
        self.assertEqual(u'Doekuemaent.txt', obj2brain(document).filename)

        document.file = None
        document.reindexObject()
        self.assertEqual(u'', filename_indexer(document)())
        self.assertEqual(u'', obj2brain(document).filename)
示例#50
0
    def test_file_extension_indexers(self):
        document = create(
            Builder("document")
            .titled(u'D\xf6k\xfcm\xe4nt')
            .attach_file_containing(u"content", name=u"file.txt")
        )
        document.reindexObject()
        self.assertEqual(u'.txt', index_data_for(document).get('file_extension'))
        self.assertEqual(u'.txt', obj2brain(document).file_extension)

        document.file = None
        document.reindexObject()
        self.assertEqual(u'', index_data_for(document).get('file_extension'))
        self.assertEqual(u'', obj2brain(document).file_extension)
示例#51
0
    def test_filename_indexers(self):
        document = create(
            Builder("document")
            .titled(u'D\xf6k\xfcm\xe4nt')
            .attach_file_containing(u"content", name=u"file.txt")
        )
        document.reindexObject()
        self.assertEqual(u'Doekuemaent.txt', filename_indexer(document)())
        self.assertEqual(u'Doekuemaent.txt', obj2brain(document).filename)

        document.file = None
        document.reindexObject()
        self.assertEqual(u'', filename_indexer(document)())
        self.assertEqual(u'', obj2brain(document).filename)
示例#52
0
    def test_indexer_returns_none_for_objects_without_translated_title_support(self):
        dossier = create(Builder('dossier')
                         .titled(u'Dossier A'))

        brain = obj2brain(dossier)
        self.assertEquals(None, brain.title_de)
        self.assertEquals(None, brain.title_fr)
    def test_assign_to_dossier_stores_and_close_forwarding(self, browser):
        self.login(self.secretariat_user, browser=browser)

        url = '{}/@workflow/forwarding-transition-assign-to-dossier'.format(
            self.inbox_forwarding.absolute_url())

        dossier_uid = obj2brain(self.empty_dossier).UID
        data = {'dossier': dossier_uid}
        browser.open(url, method='POST',
                     data=json.dumps(data), headers=self.api_headers)

        self.assertEqual(200, browser.status_code)

        yearfolder = get_current_yearfolder(context=self.inbox)
        self.assertEqual(1, len(yearfolder.objectValues()))

        forwarding = yearfolder.objectValues()[0]
        self.assertEqual(
            'forwarding-state-closed', api.content.get_state(forwarding))

        response = IResponseContainer(forwarding)[-1]
        task = self.empty_dossier.objectValues()[-1]
        self.assertEqual(
            'forwarding-transition-assign-to-dossier', response.transition)
        self.assertEqual(Oguid.for_object(task).id, response.successor_oguid)
示例#54
0
    def test_client_id(self):

        self.assertEquals(obj2brain(self.task).client_id, u'plone')

        registry = getUtility(IRegistry)
        proxy = registry.forInterface(IClientConfiguration)
        proxy.client_id = u'client_xy'

        # invalidate caches
        cache = queryUtility(ICacheChooser)(
            'opengever.ogds.base.utils.get_client_id')
        cache.ramcache.invalidateAll()
        self.task.reindexObject()

        self.assertEquals(
            obj2brain(self.task).client_id, u'client_xy')