def _add_more_data_in_nested_directory(self, number_of_extra_files: int=1) -> Tuple[str, List[int]]: """ Adds more data in a directory nested inside the temp directory. :param number_of_extra_files: (optional) the number of files to put the new data in inside the nested directory :return: a tuple where the first value is the path to the new nested directory and the second is the new data """ nested_directory_path = os.path.join(self.temp_directory, "nested") os.makedirs(nested_directory_path) more_data = [i for i in range(50)] write_data_to_files_in_temp_directory(more_data, number_of_extra_files, dir=nested_directory_path, file_prefix=TestSynchronisedFilesDataSource._FILE_PREFIX) return (nested_directory_path, more_data)
def setUp(self): self.maxDiff = None self.data = [i for i in range(30)] self.temp_directory = write_data_to_files_in_temp_directory(self.data, 10) def extract_adapter(file_path: str) -> Any: return extract_data_from_file(file_path, parser=lambda data: int(data), separator='\n') self.source = StubFilesDataSource(self.temp_directory) self.source.is_data_file = MagicMock(return_value=True) self.source.extract_data_from_file = MagicMock(side_effect=extract_adapter)
def test_get_all_when_file_created(self): self.source.start() block_until_synchronised_files_data_source_started(self.source) change_trigger = Semaphore(0) def on_change(change: FileSystemChange): if change == FileSystemChange.CREATE: change_trigger.release() self.source.add_listener(on_change) more_data = [i for i in range(50)] write_data_to_files_in_temp_directory(more_data, 10, dir=self.temp_directory, file_prefix=TestSynchronisedFilesDataSource._FILE_PREFIX) even_more_data = self._add_more_data_in_nested_directory(10)[1] triggers = 0 while triggers != 20: change_trigger.acquire() triggers += 1 logging.debug(self.source._origin_mapped_data) self.assertCountEqual(self.source.get_all(), self.data + more_data + even_more_data)
def setUp(self): self.maxDiff = None self.data = [i for i in range(30)] self.temp_directory = write_data_to_files_in_temp_directory( self.data, 10, file_prefix=TestSynchronisedFilesDataSource._FILE_PREFIX) def extract_adapter(file_path: str) -> Any: return extract_data_from_file(file_path, parser=lambda data: int(data), separator='\n') def is_test_file(file_path: str) -> bool: return TestSynchronisedFilesDataSource._FILE_PREFIX in file_path self.source = StubSynchronisedInFileDataSource(self.temp_directory) self.source.is_data_file = MagicMock(side_effect=is_test_file) self.source.extract_data_from_file = MagicMock(side_effect=extract_adapter)