def test_time_series_iter_issues_many_pages(self): """Test against issues endpoint.""" session = self.get_halo_session() start_time = utility.datetime_to_8601((datetime.now() - timedelta(30))) start_url = "/v1/issues" item_key = "issues" streamer = cloudpassage.TimeSeries(session, start_time, start_url, item_key) dupes = [] item_counter = 0 item_ids = set([]) for item in streamer: print("Item counter: %s Item ID: %s Item timestamp: %s" % (item_counter, item["id"], item["created_at"])) assert "id" in item if item["id"] in item_ids: print("Duplicate ^^^") dupes.append(item["id"]) item_ids.add(item["id"]) item_counter += 1 if item_counter > 5: break if dupes: print("Dupes:") pprint.pprint(dupes) assert False
def test_time_series_iter_events_many_pages_internal_killswitch(self): """Test triggering exit w/ StopIteration in TimeSeries().__iter__()""" session = self.get_halo_session() start_time = utility.datetime_to_8601((datetime.now() - timedelta(30))) start_url = "/v1/events" item_key = "events" streamer = cloudpassage.TimeSeries(session, start_time, start_url, item_key) dupes = [] item_counter = 0 item_ids = set([]) for item in streamer: print("Item counter: %s Item ID: %s Item timestamp: %s" % (item_counter, item["id"], item["created_at"])) assert "id" in item if item["id"] in item_ids: print("Duplicate ^^^") dupes.append(item["id"]) item_ids.add(item["id"]) item_counter += 1 if item_counter > 60: streamer.stop = True # This triggers a StopIteration if dupes: print("Dupes:") pprint.pprint(dupes) assert False
def test_time_series_iter_events_many_pages_fail(self): """Test against events endpoint.""" session = self.get_halo_session() start_time = utility.datetime_to_8601((datetime.now() - timedelta(30))) start_url = "/v1/eventss" item_key = "events" with pytest.raises(cloudpassage.CloudPassageValidation): cloudpassage.TimeSeries(session, start_time, start_url, item_key) assert False # Should bail and never hit this assertion. assert True