def test_deserializing(self):
        catalog = getToolByName(self.folder, 'portal_catalog')
        brains = catalog(path='/'.join(self.folder.getPhysicalPath()),
                          sort_on='path')

        self.assertEqual(2, len(brains))

        serializer = BrainSerializer()
        data = json.dumps(serializer.serialize_brains(brains))

        results = serializer.deserialize_brains(
            json.loads(data), total_length=13)

        self.assertEqual(BrainResultSet, type(results))
        self.assertEqual(2, len(results))
        self.assertEqual(13, results.get_total_length())
        folder, page = results

        self.assertTrue(IBrainRepresentation.providedBy(folder))
        self.assertTrue(IBrainRepresentation.providedBy(page))

        self.assertEqual('Feed folder', folder.Title)
        self.assertEqual('The page with uml\xc3\xa4uts', page.Title)

        # The url would be replaced by the bridge proxy, but here we
        # deserialize it directly.
        self.assertEqual('***portal_url***feed-folder',
                         folder.getURL())
        self.assertEqual(
            '***portal_url***feed-folder/the-page-with-umlauts',
            page.getURL())

        self.assertEqual('Folder', folder.portal_type)
        self.assertEqual('Document', page.portal_type)
    def test_deserializing(self):
        catalog = getToolByName(self.folder, 'portal_catalog')
        brains = catalog(path='/'.join(self.folder.getPhysicalPath()),
                         sort_on='path')

        self.assertEqual(len(brains), 2)

        serializer = BrainSerializer()
        data = json.dumps(serializer.serialize_brains(brains))

        results = serializer.deserialize_brains(json.loads(data),
                                                total_length=13)

        self.assertEqual(type(results), BrainResultSet)
        self.assertEqual(len(results), 2)
        self.assertEqual(results.get_total_length(), 13)
        folder, page = results

        self.assertTrue(IBrainRepresentation.providedBy(folder))
        self.assertTrue(IBrainRepresentation.providedBy(page))

        self.assertEqual(folder.Title, 'Feed folder')
        self.assertEqual(page.Title, 'The page with uml\xc3\xa4uts')

        # The url would be replaced by the bridge proxy, but here we
        # deserialize it directly.
        self.assertEqual(folder.getURL(), '***portal_url***feed-folder')
        self.assertEqual(page.getURL(), '***portal_url***feed-folder/page')

        self.assertEqual(folder.portal_type, 'Folder')
        self.assertEqual(page.portal_type, 'Document')
    def test_search_catalog(self):
        response_data = [
            {'Title': 'Foo',
             '_url': 'https://target-client/foo',
             'portal_type': 'Folder'}]
        query = {'portal_type': ['Folder']}

        response = self._create_response(raw=json.dumps(response_data))
        response.headers = {'X-total_results_length': '1'}
        url = 'http://bridge/proxy/foo/@@bridge-search-catalog'

        self._expect_request(
            url=url,
            data={'query': json.dumps({'portal_type': ['Folder'],
                                       'batching_start': 0}),
                  'limit': 50}).result(response)

        self.replay()
        utility = getUtility(IBridgeRequest)
        results = utility.search_catalog('foo', query)

        self.assertEqual(type(results), BrainResultSet)
        self.assertEqual(len(results), 1)
        brain = results[0]
        self.assertTrue(IBrainRepresentation.providedBy(brain))
        self.assertEqual(brain.getURL(), 'https://target-client/foo')
        self.assertEqual(brain.portal_type, 'Folder')
        self.assertEqual(brain.Title, 'Foo')
    def test_search_catalog(self):
        response_data = [{
            'Title': 'Foo',
            '_url': 'https://target-client/foo',
            'portal_type': 'Folder'
        }]
        query = {'portal_type': ['Folder']}

        response = self._create_response(raw=json.dumps(response_data))
        response.headers = {'X-total_results_length': '1'}
        url = 'http://bridge/proxy/foo/@@bridge-search-catalog'

        self._expect_request(url=url,
                             data={
                                 'query':
                                 json.dumps({
                                     'portal_type': ['Folder'],
                                     'batching_start': 0
                                 }),
                                 'limit':
                                 50
                             }).result(response)

        self.replay()
        utility = getUtility(IBridgeRequest)
        results = utility.search_catalog('foo', query)

        self.assertEqual(type(results), BrainResultSet)
        self.assertEqual(len(results), 1)
        brain = results[0]
        self.assertTrue(IBrainRepresentation.providedBy(brain))
        self.assertEqual(brain.getURL(), 'https://target-client/foo')
        self.assertEqual(brain.portal_type, 'Folder')
        self.assertEqual(brain.Title, 'Foo')
    def test_full_stack_catalog_query_by_traversing(self):
        query = {"path": "/".join(self.folder.getPhysicalPath())}

        utility = getUtility(IBridgeRequest)
        results = utility.search_catalog("current-client", query)

        self.assertEqual(len(results), 2)
        folder, page = results

        self.assertTrue(IBrainRepresentation.providedBy(folder))
        self.assertTrue(IBrainRepresentation.providedBy(page))

        self.assertEqual(folder.Title, "Feed folder")
        self.assertEqual(page.Title, "The page with uml\xc3\xa4uts")

        self.assertEqual(folder.getURL(), "http://nohost/plone/feed-folder")
        self.assertEqual(page.getURL(), "http://nohost/plone/feed-folder/page")

        self.assertEqual(folder.portal_type, "Folder")
        self.assertEqual(page.portal_type, "Document")
Example #6
0
    def test_full_stack_catalog_query_by_traversing(self):
        query = {
            'path': '/'.join(self.folder.getPhysicalPath())}

        utility = getUtility(IBridgeRequest)
        results = utility.search_catalog('current-client', query)

        self.assertEqual(len(results), 2)
        folder, page = results

        self.assertTrue(IBrainRepresentation.providedBy(folder))
        self.assertTrue(IBrainRepresentation.providedBy(page))

        self.assertEqual(folder.Title, 'Feed folder')
        self.assertEqual(page.Title, 'The page with uml\xc3\xa4uts')

        self.assertEqual(folder.getURL(), 'http://nohost/plone/feed-folder')
        self.assertEqual(page.getURL(),
                         'http://nohost/plone/feed-folder/page')

        self.assertEqual(folder.portal_type, 'Folder')
        self.assertEqual(page.portal_type, 'Document')
    def test_batched_results_with_respons_headers(self):
        query = {
            'path': '/'.join(self.folder.getPhysicalPath()),
            'sort_on': 'sortable_title',
            'sort_limit': 1}

        utility = getUtility(IBridgeRequest)
        results = utility.search_catalog('current-client', query)

        self.assertEqual(len(results), 1)
        folder = results[0]

        self.assertTrue(IBrainRepresentation.providedBy(folder))
        self.assertEqual(folder.Title, 'Feed folder')
Example #8
0
    def test_batched_results_with_respons_headers(self):
        query = {
            'path': '/'.join(self.folder.getPhysicalPath()),
            'sort_on': 'sortable_title',
            'sort_order': 'reverse',
            'sort_limit': 1}

        utility = getUtility(IBridgeRequest)
        results = utility.search_catalog('current-client', query)

        self.assertEqual(len(results), 1)
        folder = results[0]

        self.assertTrue(IBrainRepresentation.providedBy(folder))
        self.assertEqual(folder.Title, 'Feed folder')
    def test_batched_results_with_respons_headers(self):
        query = {
            "path": "/".join(self.folder.getPhysicalPath()),
            "sort_on": "sortable_title",
            "sort_order": "reverse",
            "sort_limit": 1,
        }

        utility = getUtility(IBridgeRequest)
        results = utility.search_catalog("current-client", query)

        self.assertEqual(len(results), 1)
        folder = results[0]

        self.assertTrue(IBrainRepresentation.providedBy(folder))
        self.assertEqual(folder.Title, "Feed folder")
Example #10
0
 def test_component_implements_interface(self):
     self.assertTrue(IBrainRepresentation.implementedBy(
             BrainRepresentation))
     verifyClass(IBrainRepresentation, BrainRepresentation)
Example #11
0
 def test_component_implements_interface(self):
     self.assertTrue(
         IBrainRepresentation.implementedBy(BrainRepresentation))
     verifyClass(IBrainRepresentation, BrainRepresentation)