def setUp(self): FILEPATH_MANAGER.initialise(TEST_DIRECTORY, SCHEMA_DIR) self.file_manager = MockConfigurationFileManager() self.synoptic_manager = MagicMock() self.eh = SynopticFileEventHandler(SCHEMA_DIR, RLock(), self.synoptic_manager)
class TestConfigFileEventHandler(unittest.TestCase): def setUp(self): FILEPATH_MANAGER.initialise(TEST_DIRECTORY, SCHEMA_DIR) self.file_manager = MockConfigurationFileManager() self.synoptic_manager = MagicMock() self.eh = SynopticFileEventHandler(SCHEMA_DIR, RLock(), self.synoptic_manager) def tearDown(self): if os.path.isdir(TEST_DIRECTORY + os.sep): shutil.rmtree(os.path.abspath(TEST_DIRECTORY + os.sep)) def test_when_getting_name_from_path_correct_synoptic_name_is_returned(self): # Arrange synoptic_name = 'TEST_SYNOPTIC' synoptic_file = synoptic_name + '.xml' path = os.path.join(FILEPATH_MANAGER.synoptic_dir, synoptic_file) # Act name = self.eh._get_name(path) # Assert self.assertEqual(name, synoptic_name) def test_when_deleted_event_then_recover_called(self): # Arrange synoptic_name = 'TEST_SYNOPTIC' synoptic_file = synoptic_name + '.xml' path = os.path.join(FILEPATH_MANAGER.synoptic_dir, synoptic_file) # Act self.eh.on_deleted(DirDeletedEvent(path)) # Assert self.synoptic_manager.recover_from_version_control.assert_called() def test_when_reading_valid_xml_data_then_is_successfully_returned_by_check_valid(self): # Arrange synoptic_name = 'TEST_SYNOPTIC' synoptic_file = synoptic_name + '.xml' path = os.path.join(FILEPATH_MANAGER.synoptic_dir, synoptic_file) # Act self.synoptic_manager.load_synoptic.return_value = SAMPLE_SYNOPTIC xml_data = self.eh._check_valid(path) # Assert self.assertEqual(xml_data, SAMPLE_SYNOPTIC) def test_given_invalid_extension_then_raise_not_config_file_exception(self): # Arrange synoptic_name = 'TEST_SYNOPTIC' synoptic_file = synoptic_name + '.txt' path = os.path.join(FILEPATH_MANAGER.synoptic_dir, synoptic_file) # Act self.synoptic_manager.load_synoptic.return_value = SAMPLE_SYNOPTIC # Assert with self.assertRaises(NotConfigFileException): self.eh._check_valid(path) def test_when_file_modified_event_then_reload_and_update(self): # Arrange synoptic_name = 'TEST_SYNOPTIC' synoptic_file = synoptic_name + '.xml' path = os.path.join(FILEPATH_MANAGER.synoptic_dir, synoptic_file) e = FileModifiedEvent(path) self.synoptic_manager.load_synoptic.return_value = SAMPLE_SYNOPTIC # Act self.eh.on_any_event(e) # Assert self.synoptic_manager.load_synoptic.assert_called_with(path) self.synoptic_manager.update.assert_called_with(SAMPLE_SYNOPTIC)