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, 'historical content'), ('1', 2, '94b8015bcb52fca1155ecee14153c8634856f1bc', 1466107110.0, 'historical content'), ('2', 1, 'eccc9b6c961f8753ee37fb8d077be80b9bea0976', 1467402626.0, 'historical content'), ('att1', 1, 'ff21bba0b1968adcec2588e94ff42782330174dd', 1467831550.0, 'historical content')] 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]) self.assertEqual(hc['category'], expected[x][4]) # 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])
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_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['updated_on'], expected[x][3]) # No more requests were sent self.assertEqual(len(http_requests), 6)
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_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)
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)
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, 'historical content'), ('2', 1, 'eccc9b6c961f8753ee37fb8d077be80b9bea0976', 1467402626.0, 'historical content'), ('att1', 1, 'ff21bba0b1968adcec2588e94ff42782330174dd', 1467831550.0, 'historical content')] 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]) self.assertEqual(hc['category'], expected[x][4]) # 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_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])