def test_fetch_from_non_set_cache(self):
        """Test if a error is raised when the cache was not set"""

        confluence = Confluence(CONFLUENCE_URL)

        with self.assertRaises(CacheError):
            _ = [hc for hc in confluence.fetch_from_cache()]
Beispiel #2
0
    def test_fetch_removed_content(self):
        """Test if the method works when a content is not found"""

        http_requests = setup_http_server()

        # Set server to return a 404 error
        httpretty.register_uri(httpretty.GET,
                               CONFLUENCE_HISTORICAL_CONTENT_1,
                               status=404,
                               body="Mock 404 error")

        confluence = Confluence(CONFLUENCE_URL)
        hcs = [hc for hc in confluence.fetch()]

        expected = [('2', 1, 'eccc9b6c961f8753ee37fb8d077be80b9bea0976',
                     1467402626.0),
                    ('att1', 1, 'ff21bba0b1968adcec2588e94ff42782330174dd',
                     1467831550.0)]

        self.assertEqual(len(hcs), len(expected))

        for x in range(len(hcs)):
            hc = hcs[x]
            self.assertEqual(hc['data']['id'], expected[x][0])
            self.assertEqual(hc['data']['version']['number'], expected[x][1])
            self.assertEqual(hc['uuid'], expected[x][2])
            self.assertEqual(hc['origin'], CONFLUENCE_URL)
            self.assertEqual(hc['updated_on'], expected[x][3])
            self.assertEqual(hc['category'], 'historical content')
            self.assertEqual(hc['tag'], CONFLUENCE_URL)

        # Check requests
        expected = [
            {
                'cql':
                ["lastModified>='1970-01-01 00:00' order by lastModified"],
                'limit': ['200']
            },
            {
                'cql':
                ["lastModified>='1970-01-01 00:00' order by lastModified"],
                'start': ['2'],
                'limit': ['2']  # Hardcoded in JSON dataset
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['1']
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['1']
            }
        ]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])
    def test_fetch_from_empty_cache(self):
        """Test if there are not any content returned when the cache is empty"""

        cache = Cache(self.tmp_path)
        confluence = Confluence(CONFLUENCE_URL, cache=cache)
        cached_hcs = [hc for hc in confluence.fetch_from_cache()]
        self.assertEqual(len(cached_hcs), 0)
    def test_initialization(self):
        """Test whether attributes are initializated"""

        confluence = Confluence(CONFLUENCE_URL, origin='test')

        self.assertEqual(confluence.url, CONFLUENCE_URL)
        self.assertEqual(confluence.origin, 'test')
        self.assertIsInstance(confluence.client, ConfluenceClient)

        # When origin is empty or None it will be set to
        # the value in url
        confluence = Confluence(CONFLUENCE_URL)
        self.assertEqual(confluence.url, CONFLUENCE_URL)
        self.assertEqual(confluence.url, CONFLUENCE_URL)

        confluence = Confluence(CONFLUENCE_URL, origin='')
        self.assertEqual(confluence.url, CONFLUENCE_URL)
        self.assertEqual(confluence.url, CONFLUENCE_URL)
    def test_fetch_empty(self):
        """Test if nothing is returnerd when there are no contents"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2016, 7, 8, 0, 0, 0)

        confluence = Confluence(CONFLUENCE_URL)
        hcs = [hc for hc in confluence.fetch(from_date=from_date)]

        self.assertEqual(len(hcs), 0)

        # Check requests
        expected = {
            'cql': ["lastModified>='2016-07-08 00:00' order by lastModified"],
            'limit': ['200']
        }

        self.assertEqual(len(http_requests), 1)
        self.assertDictEqual(http_requests[0].querystring, expected)
Beispiel #6
0
    def test_fetch_from_cache(self):
        """Test whether the cache works"""

        http_requests = setup_http_server()

        # First, we fetch the contents from the server,
        # storing them in a cache
        cache = Cache(self.tmp_path)
        confluence = Confluence(CONFLUENCE_URL, cache=cache)

        hcs = [hc for hc in confluence.fetch()]
        self.assertEqual(len(http_requests), 6)

        # Now, we get the contents from the cache.
        # The contents should be the same and there won't be
        # any new request to the server
        cached_hcs = [hc for hc in confluence.fetch_from_cache()]
        self.assertEqual(len(cached_hcs), len(hcs))

        expected = [
            ('1', 1, '5b8bf26bfd906214ec82f5a682649e8f6fe87984', 1465589121.0),
            ('1', 2, '94b8015bcb52fca1155ecee14153c8634856f1bc', 1466107110.0),
            ('2', 1, 'eccc9b6c961f8753ee37fb8d077be80b9bea0976', 1467402626.0),
            ('att1', 1, 'ff21bba0b1968adcec2588e94ff42782330174dd',
             1467831550.0)
        ]

        self.assertEqual(len(cached_hcs), len(expected))

        for x in range(len(cached_hcs)):
            hc = cached_hcs[x]
            self.assertEqual(hc['data']['id'], expected[x][0])
            self.assertEqual(hc['data']['version']['number'], expected[x][1])
            self.assertEqual(hc['uuid'], expected[x][2])
            self.assertEqual(hc['origin'], CONFLUENCE_URL)
            self.assertEqual(hc['updated_on'], expected[x][3])
            self.assertEqual(hc['category'], 'historical content')
            self.assertEqual(hc['tag'], CONFLUENCE_URL)

        # No more requests were sent
        self.assertEqual(len(http_requests), 6)
    def test_fetch_from_date(self):
        """Test if a list of contents is returned from a given date"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2016, 6, 16, 0, 0, 0)

        confluence = Confluence(CONFLUENCE_URL)
        hcs = [hc for hc in confluence.fetch(from_date=from_date)]

        # On this test case the first version of content #1
        # will not be returned becasue this version was
        # created before the given date
        expected = [
            ('1', 2, '94b8015bcb52fca1155ecee14153c8634856f1bc', 1466107110.0),
            ('2', 1, 'eccc9b6c961f8753ee37fb8d077be80b9bea0976', 1467402626.0),
            ('att1', 1, 'ff21bba0b1968adcec2588e94ff42782330174dd',
             1467831550.0)
        ]

        self.assertEqual(len(hcs), len(expected))

        for x in range(len(hcs)):
            hc = hcs[x]
            self.assertEqual(hc['data']['id'], expected[x][0])
            self.assertEqual(hc['data']['version']['number'], expected[x][1])
            self.assertEqual(hc['uuid'], expected[x][2])
            self.assertEqual(hc['updated_on'], expected[x][3])

        # Check requests
        expected = [
            {
                'cql':
                ["lastModified>='2016-06-16 00:00' order by lastModified"],
                'limit': ['200']
            },
            {  # Hardcoded in JSON dataset
                'cql':
                ["lastModified>='1970-01-01 00:00' order by lastModified"],
                'start': ['2'],
                'limit': ['2']
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['1']
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['2']
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['1']
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['1']
            }
        ]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])
    def test_fetch(self):
        """Test it it fetches and parses a list of contents"""

        http_requests = setup_http_server()

        confluence = Confluence(CONFLUENCE_URL)
        hcs = [hc for hc in confluence.fetch()]

        expected = [
            ('1', 1, '5b8bf26bfd906214ec82f5a682649e8f6fe87984', 1465589121.0),
            ('1', 2, '94b8015bcb52fca1155ecee14153c8634856f1bc', 1466107110.0),
            ('2', 1, 'eccc9b6c961f8753ee37fb8d077be80b9bea0976', 1467402626.0),
            ('att1', 1, 'ff21bba0b1968adcec2588e94ff42782330174dd',
             1467831550.0)
        ]

        self.assertEqual(len(hcs), len(expected))

        for x in range(len(hcs)):
            hc = hcs[x]
            self.assertEqual(hc['data']['id'], expected[x][0])
            self.assertEqual(hc['data']['version']['number'], expected[x][1])
            self.assertEqual(hc['uuid'], expected[x][2])
            self.assertEqual(hc['updated_on'], expected[x][3])

        # Check requests
        expected = [
            {
                'cql':
                ["lastModified>='1970-01-01 00:00' order by lastModified"],
                'limit': ['200']
            },
            {
                'cql':
                ["lastModified>='1970-01-01 00:00' order by lastModified"],
                'start': ['2'],
                'limit': ['2']  # Hardcoded in JSON dataset
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['1']
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['2']
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['1']
            },
            {
                'expand': ['body.storage,history,version'],
                'status': ['historical'],
                'version': ['1']
            }
        ]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])