def test_delete_items_error(self): """Test whether an error message is logged if the items aren't deleted""" items = json.loads(read_file('data/git.json')) elastic = ElasticSearch(self.es_con, self.target_index, GitOcean.mapping) new_items = elastic.bulk_upload(items, field_id="uuid") self.assertEqual(new_items, 11) with self.assertLogs(logger, level='ERROR') as cm: elastic.delete_items(retention_time=1, time_field='timestamp') self.assertRegex(cm.output[0], 'ERROR:grimoire_elk.elastic:\\[items retention\\] Error deleted items*')
def test_delete_items_wrong_retention(self): """Test whether no items are deleted if retention isn't defined or negative""" items = json.loads(read_file('data/git.json')) for item in items: timestamp = unixtime_to_datetime(item['timestamp']) item['timestamp'] = timestamp.isoformat() elastic = ElasticSearch(self.es_con, self.target_index, GitOcean.mapping) new_items = elastic.bulk_upload(items, field_id="uuid") self.assertEqual(new_items, 11) url = self.es_con + '/' + self.target_index + '/_count' elastic.delete_items(retention_time=None, time_field='timestamp') left_items = elastic.requests.get(url).json()['count'] self.assertEqual(left_items, 11) elastic.delete_items(retention_time=-1, time_field='timestamp') left_items = elastic.requests.get(url).json()['count'] self.assertEqual(left_items, 11)
def test_delete_items(self): """Test whether items are correctly deleted""" items = json.loads(read_file('data/git.json')) for item in items: timestamp = unixtime_to_datetime(item['timestamp']) item['timestamp'] = timestamp.isoformat() elastic = ElasticSearch(self.es_con, self.target_index, GitOcean.mapping) new_items = elastic.bulk_upload(items, field_id="uuid") self.assertEqual(new_items, 9) url = self.es_con + '/' + self.target_index + '/_count' elastic.delete_items(retention_time=90000000, time_field='timestamp') left_items = elastic.requests.get(url).json()['count'] self.assertEqual(left_items, 9) elastic.delete_items(retention_time=1, time_field='timestamp') left_items = elastic.requests.get(url).json()['count'] self.assertEqual(left_items, 0)