def test_archive_require_complete_fail(self): test_archive_name = "multiple-" + self.test_timestamp + ".tar.gz" # c.py does not exist and exception is expected with pytest.raises(FileNotFoundError) as ex: create_temp_archive(test_archive_name, self.test_dir, filenames=["*.json", "*.txt", "a.py", "c.py"], require_complete=True) assert "{'c.py'}" in str( ex) # ensure c.py is the only item not matched
def test_archive_require_complete(self): test_archive_name = "multiple-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive( test_archive_name, self.test_dir, filenames=["*.json", "*.txt", "a.py"], require_complete=True) self.assertArchivedContent(archive_path, ["c.json", "d.txt", "a.py"])
def test_archive_with_subdirectories_no_filter(self): subdir_name = os.path.join(self.test_dir, "subdir") os.makedirs(subdir_name) self._create_test_files(subdir_name) test_archive_name = "subdir-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(archive_name=test_archive_name, source_dir=self.test_dir, recursive=True) self.assertArchivedFileCount(archive_path, 0)
def _generate_dependency_archive(self, operation): archive_artifact_name = self._get_dependency_archive_name(operation) archive_source_dir = self._get_dependency_source_dir(operation) files = [os.path.basename(operation.filename)] files.extend(operation.dependencies) archive_artifact = create_temp_archive(archive_name=archive_artifact_name, source_dir=archive_source_dir, files=files, recursive=operation.include_subdirectories) return archive_artifact
def test_archive_with_subdirectories_and_filters(self): subdir_name = os.path.join(self.test_dir, "subdir") os.makedirs(subdir_name) self._create_test_files(subdir_name) test_archive_name = "subdir-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(archive_name=test_archive_name, source_dir=self.test_dir, filenames=["subdir/*.py"], recursive=True) self.assertArchivedFileCount(archive_path, 2) self.assertArchivedContent(archive_path, ["subdir/a.py", "subdir/b.py"])
def test_archive_with_second_level_subdirectories(self): subdir_name = os.path.join(self.test_dir, "subdir") os.makedirs(subdir_name) self._create_test_files(subdir_name) another_subdir_name = os.path.join(subdir_name, "another.subdir") os.makedirs(another_subdir_name) self._create_test_files(another_subdir_name) test_archive_name = "subdir-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(archive_name=test_archive_name, source_dir=self.test_dir, filenames=["*"], recursive=True) self.assertArchivedFileCount(archive_path, 15)
def _generate_dependency_archive(self, operation: Operation) -> Optional[str]: archive_artifact_name = self._get_dependency_archive_name(operation) archive_source_dir = self._get_dependency_source_dir(operation) dependencies = [os.path.basename(operation.filename)] dependencies.extend(operation.dependencies) archive_artifact = create_temp_archive( archive_name=archive_artifact_name, source_dir=archive_source_dir, filenames=dependencies, recursive=operation.include_subdirectories, require_complete=True, ) return archive_artifact
def test_archive_multiple_filters(self): test_archive_name = "multiple-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(test_archive_name, self.test_dir, filenames=["*.json", "*.txt"]) self.assertArchivedContent(archive_path, ["c.json", "d.txt"])
def test_archive_by_excluded_sequence(self): test_archive_name = "python-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(test_archive_name, self.test_dir, filenames=["*[!b].py"]) self.assertArchivedContent(archive_path, ["a.py"])
def test_archive_by_sequence_wildcard(self): test_archive_name = "python-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(test_archive_name, self.test_dir, filenames=["[ab].*"]) self.assertArchivedContent(archive_path, ["a.py", "b.py"])
def test_archive_by_filter(self): test_archive_name = "python-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(test_archive_name, self.test_dir, filenames=["*.py"]) self.assertArchivedContent(archive_path, ["a.py", "b.py"])
def test_archive_no_filter(self): test_archive_name = "all-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(test_archive_name, self.test_dir) self.assertArchivedFileCount(archive_path, 0)
def test_archive_all(self): test_archive_name = "all-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(test_archive_name, self.test_dir, filenames=["*"]) self.assertArchivedContent(archive_path, self.test_files)
def test_archive_nonexistent_filter(self): test_archive_name = "empty-" + self.test_timestamp + ".tar.gz" archive_path = create_temp_archive(test_archive_name, self.test_dir, filenames=["*.yml"]) self.assertArchivedContent(archive_path, [])