Ejemplo n.º 1
0
    def test_modified_index_gets_updated_when_trashing(self):
        self.login(self.regular_user)

        with freeze(datetime(2014, 5, 7, 12, 30)) as clock:
            Trasher(self.subsubdocument).trash()
            clock.forward(minutes=5)

            Trasher(self.taskdocument).trash()
            clock.forward(minutes=5)

            Trasher(self.document).trash()
            clock.forward(minutes=5)

            Trasher(self.subdocument).trash()

        catalog = api.portal.get_tool('portal_catalog')
        modified_idx = catalog._catalog.indexes['modified']

        def modified_idx_value(obj):
            return index_data_for(obj)['modified']

        def to_idx_value(value):
            return modified_idx._convert(value)

        self.assertEqual(to_idx_value(datetime(2014, 5, 7, 12, 30)),
                         modified_idx_value(self.subsubdocument))

        self.assertEqual(to_idx_value(datetime(2014, 5, 7, 12, 35)),
                         modified_idx_value(self.taskdocument))

        self.assertEqual(to_idx_value(datetime(2014, 5, 7, 12, 40)),
                         modified_idx_value(self.document))

        self.assertEqual(to_idx_value(datetime(2014, 5, 7, 12, 45)),
                         modified_idx_value(self.subdocument))
Ejemplo n.º 2
0
    def test_trash_listing_does_not_contain_subdossier_and_checked_out_column(self, browser):
        self.login(self.secretariat_user, browser=browser)

        Trasher(self.inbox_document).trash()
        browser.open(self.inbox, view='tabbedview_view-trash')

        self.assertEquals(
            ['', 'Sequence Number', 'Title', 'Document Author',
             'Document Date', 'Modification Date', 'Creation Date',
             'Receipt Date', 'Delivery Date', 'Public Trial',
             'Reference Number', 'File extension', 'Keywords'],
            browser.css('.listing th').text)
Ejemplo n.º 3
0
    def test_able_to_search_for_trashed_docs(self, browser):
        self.login(self.regular_user, browser)

        doc_url = self.document.absolute_url()

        # Guard assertion - both direct catalog searches and REST API
        # should give the same results with no trashed documents
        catalog_results = self.search_catalog(
            self.dossier,
            dict(sort_on='path', portal_type='opengever.document.document'))

        api_results = self.search_restapi(
            browser, self.dossier,
            dict(sort_on='path', portal_type='opengever.document.document'))

        self.assertIn(doc_url, catalog_results)
        self.assertIn(doc_url, api_results)
        self.assertEqual(catalog_results, api_results)

        # Trash self.document - should now disappear from regular results
        Trasher(self.document).trash()

        catalog_results = self.search_catalog(
            self.dossier,
            dict(sort_on='path', portal_type='opengever.document.document'))

        api_results = self.search_restapi(
            browser, self.dossier,
            dict(sort_on='path', portal_type='opengever.document.document'))

        self.assertNotIn(doc_url, catalog_results)
        self.assertNotIn(doc_url, api_results)
        self.assertEqual(catalog_results, api_results)

        # But trashed docs can still be searched for explicitly, both
        # directly via catalog and the REST API @search endpoint
        catalog_results = self.search_catalog(
            self.dossier,
            dict(sort_on='path',
                 portal_type='opengever.document.document',
                 trashed=True))

        api_results = self.search_restapi(
            browser, self.dossier, {
                'sort_on': 'path',
                'portal_type': 'opengever.document.document',
                'trashed:boolean': '1'
            })

        self.assertEqual([doc_url], catalog_results)
        self.assertEqual([doc_url], api_results)
Ejemplo n.º 4
0
    def test_is_trashed(self):
        self.login(self.regular_user)

        self.assertFalse(
            IContentListingObject(obj2brain(self.document)).is_trashed, )

        Trasher(self.document).trash()

        self.assertTrue(
            IContentListingObject(obj2brain(self.document,
                                            unrestricted=True), ).is_trashed, )

        self.assertFalse(
            IContentListingObject(obj2brain(self.dossier)).is_trashed, )
Ejemplo n.º 5
0
    def test_can_sort_trashed_docs_by_modified(self, browser):
        self.login(self.regular_user, browser)

        with freeze(datetime(2014, 5, 7, 12, 30)) as clock:
            Trasher(self.subsubdocument).trash()
            clock.forward(minutes=5)

            Trasher(self.taskdocument).trash()
            clock.forward(minutes=5)

            Trasher(self.document).trash()
            clock.forward(minutes=5)

            Trasher(self.subdocument).trash()

        expected_order = [
            self.subsubdocument.absolute_url(),
            self.taskdocument.absolute_url(),
            self.document.absolute_url(),
            self.subdocument.absolute_url(),
        ]

        catalog_results = self.search_catalog(
            self.dossier,
            dict(sort_on='modified',
                 portal_type='opengever.document.document',
                 trashed=True))

        api_results = self.search_restapi(
            browser, self.dossier, {
                'sort_on': 'modified',
                'portal_type': 'opengever.document.document',
                'trashed:boolean': '1'
            })

        self.assertEqual(expected_order, catalog_results)
        self.assertEqual(expected_order, api_results)
Ejemplo n.º 6
0
    def test_all_favorites_are_deleted_when_moving_a_document_to_trash(self):
        self.login(self.regular_user)

        create(Builder('favorite')
               .for_object(self.dossier)
               .for_user(self.administrator))

        create(Builder('favorite')
               .for_object(self.document)
               .for_user(self.dossier_responsible))

        self.assertEquals(2, Favorite.query.count())

        Trasher(self.document).trash()

        self.assertEquals(1, Favorite.query.count())
 def trash_documents(self, *objects):
     for obj in objects:
         Trasher(obj).trash()
Ejemplo n.º 8
0
 def test_revert_disallowed_when_trashed(self):
     Trasher(self.document).trash()
     self.assertFalse(self.manager.is_revert_allowed())