Esempio n. 1
0
 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
Esempio n. 2
0
 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"])
Esempio n. 3
0
    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)
Esempio n. 4
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
Esempio n. 5
0
    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"])
Esempio n. 6
0
    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)
Esempio n. 7
0
    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
Esempio n. 8
0
 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"])
Esempio n. 9
0
 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"])
Esempio n. 10
0
 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"])
Esempio n. 11
0
 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"])
Esempio n. 12
0
 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)
Esempio n. 13
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)
Esempio n. 14
0
 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, [])