def test_initialization(self): """Test whether attributes are initializated""" remo = ReMo(MOZILLA_REPS_SERVER_URL, tag='test') self.assertEqual(remo.url, MOZILLA_REPS_SERVER_URL) self.assertEqual(remo.origin, MOZILLA_REPS_SERVER_URL) self.assertEqual(remo.tag, 'test') self.assertIsNone(remo.client) self.assertTrue(remo.ssl_verify) # When tag is empty or None it will be set to # the value in url remo = ReMo(MOZILLA_REPS_SERVER_URL, ssl_verify=False) self.assertEqual(remo.url, MOZILLA_REPS_SERVER_URL) self.assertEqual(remo.origin, MOZILLA_REPS_SERVER_URL) self.assertEqual(remo.tag, MOZILLA_REPS_SERVER_URL) self.assertFalse(remo.ssl_verify) remo = ReMo(MOZILLA_REPS_SERVER_URL, tag='') self.assertEqual(remo.url, MOZILLA_REPS_SERVER_URL) self.assertEqual(remo.origin, MOZILLA_REPS_SERVER_URL) self.assertEqual(remo.tag, MOZILLA_REPS_SERVER_URL) self.assertTrue(remo.ssl_verify) # If no url is provided, MOZILLA_REPS_URL is used remo = ReMo() self.assertEqual(remo.url, MOZILLA_REPS_URL) self.assertEqual(remo.origin, MOZILLA_REPS_URL) self.assertEqual(remo.tag, MOZILLA_REPS_URL)
def test_fetch_from_non_set_cache(self): """Test if a error is raised when the cache was not set""" remo = ReMo(MOZILLA_REPS_SERVER_URL) with self.assertRaises(CacheError): _ = [event for event in remo.fetch_from_cache()]
def test_fetch_from_empty_cache(self): """Test if there are not any events returned when the cache is empty""" cache = Cache(self.tmp_path) remo = ReMo(MOZILLA_REPS_SERVER_URL, cache=cache) cached_events = [event for event in remo.fetch_from_cache()] self.assertEqual(len(cached_events), 0)
def __test_fetch_from_cache(self, category): """Test whether the cache works""" HTTPServer.routes() # First, we fetch the events from the server, storing them # in a cache cache = Cache(self.tmp_path) remo = ReMo(MOZILLA_REPS_SERVER_URL, cache=cache) items = [item for item in remo.fetch(category=category)] requests_done = len(HTTPServer.requests_http) # Now, we get the items from the cache. # The contents should be the same and there won't be # any new request to the server cached_items = [item for item in remo.fetch_from_cache()] # No new requests to the server self.assertEqual(len(HTTPServer.requests_http), requests_done) # The contents should be the same self.assertEqual(len(cached_items), len(items)) for i in range(0, len(items)): self.assertDictEqual(cached_items[i]['data'], items[i]['data']) self.assertEqual(cached_items[i]['offset'], items[i]['offset'])
def __test_fetch(self, category='event'): """Test whether the events are returned""" items_page = ReMoClient.ITEMS_PER_PAGE pages = 2 # two pages of testing data HTTPServer.routes() prev_requests_http = len(HTTPServer.requests_http) # Test fetch events with their reviews remo = ReMo(MOZILLA_REPS_SERVER_URL) items = [page for page in remo.fetch(offset=None, category=category)] self.assertEqual(len(items), items_page * pages) if category == 'event': self.__check_events_contents(items) elif category == 'user': self.__check_users_contents(items) elif category == 'activity': self.__check_activities_contents(items) # Check requests: page list, items, page list, items expected = [{'page': ['1'], 'orderby': ['ASC']}] for i in range(0, items_page): expected += [{}] expected += [{'page': ['2'], 'orderby': ['ASC']}] for i in range(0, items_page): expected += [{}] self.assertEqual(len(HTTPServer.requests_http) - prev_requests_http, len(expected)) for i in range(len(expected)): self.assertDictEqual(HTTPServer.requests_http[i].querystring, expected[i])
def test_fetch_empty(self): """Test whether it works when no items are fetched""" HTTPServer.routes(empty=True) remo = ReMo(MOZILLA_REPS_SERVER_URL) events = [event for event in remo.fetch()] self.assertEqual(len(events), 0)
def tests_wrong_metadata_category(self): HTTPServer.routes() prev_requests_http = len(HTTPServer.requests_http) # Test fetch events with their reviews remo = ReMo(MOZILLA_REPS_SERVER_URL) items = [page for page in remo.fetch(offset=None, category="event")] item = items[0] item.pop('estimated_attendance', None) with self.assertRaises(TypeError): remo.metadata_category(item)
def __test_search_terms(self, category='event'): """Test whether the search_fields is properly set""" items_page = ReMoClient.ITEMS_PER_PAGE pages = 2 # two pages of testing data HTTPServer.routes() # Test fetch events with their reviews remo = ReMo(MOZILLA_REPS_SERVER_URL) items = [page for page in remo.fetch(offset=None, category=category)] for item in items: self.assertEqual(remo.metadata_id(item['data']), item['search_fields']['item_id'])
def test_fetch_offset(self): items_page = ReMoClient.ITEMS_PER_PAGE pages = 2 # two pages of testing data offset = 15 HTTPServer.routes() prev_requests_http = len(HTTPServer.requests_http) # Test fetch events with their reviews remo = ReMo(MOZILLA_REPS_SERVER_URL) # Test we get the correct number of items from an offset items = [page for page in remo.fetch(offset=15)] self.assertEqual(len(items), (items_page * pages) - offset) # Test that the same offset (17) is the same item items = [page for page in remo.fetch(offset=5)] uuid_17_1 = items[12]['uuid'] self.assertEqual(items[12]['offset'], 17) items = [page for page in remo.fetch(offset=12)] uuid_17_2 = items[5]['uuid'] self.assertEqual(items[5]['offset'], 17) self.assertEqual(uuid_17_1, uuid_17_2)
def setUp(self): super().setUp() self.backend_write_archive = ReMo(MOZILLA_REPS_SERVER_URL, archive=self.archive) self.backend_read_archive = ReMo(MOZILLA_REPS_SERVER_URL, archive=self.archive)
def test_has_resuming(self): """Test if it returns True when has_resuming is called""" self.assertEqual(ReMo.has_resuming(), True)