def test_housekeeping_execute_no_whitelist_parameter_change(self): # Check that housekeeping run even when we change new part in the configuration self.test_settings.change_configuration_path( test_file_whitelist_dummy_reason_path_config) self._backup_config(test_file_whitelist_dummy_reason_path_config) housekeeping = HousekeepingJob() analyzer = AnalyzerFactory.create( "/app/tests/unit_tests/files/use_cases/housekeeping/analyzer_dummy_test.conf" ) housekeeping.update_analyzer_list([analyzer]) # Add document to "Database" doc_with_outlier = copy.deepcopy(doc_with_outlier_test_file) expected_doc_with_outlier = copy.deepcopy(doc_with_outlier_test_file) self.test_es.add_doc(doc_with_outlier) # Update configuration (create new section and append to default) filecontent = "\n\n[dummy_section]\nparam=1" # Force the date of the file housekeeping.file_mod_watcher._previous_mtimes[ test_file_whitelist_dummy_reason_path_config] = 0 with open(test_file_whitelist_dummy_reason_path_config, 'a') as test_file: test_file.write(filecontent) housekeeping.execute_housekeeping() # Fetch result result = [elem for elem in self.test_es._scan()][0] self._restore_config(test_file_whitelist_dummy_reason_path_config) self.assertNotEqual(result, expected_doc_with_outlier)
def test_whitelist_literals_per_model_not_removed_by_housekeeping(self): # Init doc_generate = DummyDocumentsGenerate() self.test_settings.change_configuration_path( "/app/tests/unit_tests/files/housekeeping.conf") housekeeping = HousekeepingJob() # Generate document document = doc_generate.generate_document({ "hostname": "NOT-WHITELISTED", "create_outlier": True, "outlier.model_name": "dummy_test", "outlier.model_type": "simplequery" }) self.assertTrue("outliers" in document["_source"]) analyzer = AnalyzerFactory.create( "/app/tests/unit_tests/files/use_cases/housekeeping/analyzer_dummy_test_with_whitelist.conf" ) housekeeping.update_analyzer_list([analyzer]) self.test_es.add_doc(document) housekeeping.execute_housekeeping() result = [elem for elem in self.test_es._scan()][0] self.assertTrue("outliers" in result["_source"])
def test_housekeeping_correctly_remove_whitelisted_outlier_when_file_modification( self): self.test_settings.change_configuration_path( test_file_no_whitelist_path_config) self._backup_config(test_file_no_whitelist_path_config) housekeeping = HousekeepingJob() analyzer = AnalyzerFactory.create( "/app/tests/unit_tests/files/use_cases/housekeeping/analyzer_dummy_test.conf" ) housekeeping.update_analyzer_list([analyzer]) # Add document to "Database" doc_with_outlier = copy.deepcopy(doc_with_outlier_test_file) self.test_es.add_doc(doc_with_outlier) housekeeping.file_mod_watcher._previous_mtimes[ test_file_no_whitelist_path_config] = 0 filecontent = "" with open(test_file_no_whitelist_path_config, 'r') as test_file: for line in test_file: if "# WHITELIST" in line: break filecontent += line # Update configuration (read new config and append to default) with open(test_file_whitelist_path_config, 'r') as test_file: filecontent += test_file.read() with open(test_file_no_whitelist_path_config, 'w') as test_file: test_file.write(filecontent) housekeeping.execute_housekeeping() # Fetch result result = [elem for elem in self.test_es._scan()][0] # Compute expected result: doc_without_outlier = copy.deepcopy(doc_without_outlier_test_file) self._restore_config(test_file_no_whitelist_path_config) self.maxDiff = None self.assertEqual(result, doc_without_outlier)