def test_get_ignore_pack_tests__ignore_missing_test(tmpdir, mocker): """ Given - Pack have .pack-ignore file - There are skipped tests in .pack-ignore - The tests are missing from the content pack When - Collecting packs' ignored tests - running `get_ignore_pack_tests()` Then: - returns a list with the skipped tests """ fake_pack_name = 'FakeTestPack' fake_test_name = 'FakeTestPlaybook.yml' # prepare repo repo = Repo(tmpdir) packs_path = Path(repo.path) / PACKS_DIR pack = Pack(packs_path, fake_pack_name, repo) test_playbook_path = packs_path / fake_pack_name / TEST_PLAYBOOKS_DIR pack_ignore_path = os.path.join(pack.path, PACKS_PACK_IGNORE_FILE_NAME) # prepare .pack-ignore with open(pack_ignore_path, 'a') as pack_ignore_f: pack_ignore_f.write("[file:TestIntegration.yml]\nignore=IN126\n\n" f"[file:{fake_test_name}]\nignore=auto-test") # prepare mocks mocker.patch.object(tools, "get_pack_ignore_file_path", return_value=pack_ignore_path) mocker.patch.object(os.path, "join", return_value=str(test_playbook_path / fake_test_name)) ignore_test_set = get_ignore_pack_skipped_tests(fake_pack_name) assert len(ignore_test_set) == 0
def test_get_ignore_pack_tests__test_not_ignored(tmpdir): """ Given - Pack have .pack-ignore file - There are no skipped tests in .pack-ignore When - Collecting packs' ignored tests - running `get_ignore_pack_tests()` Then: - returns an empty set """ fake_pack_name = 'FakeTestPack' # prepare repo repo = Repo(tmpdir) repo_path = Path(repo.path) pack = Pack(repo_path / PACKS_DIR, fake_pack_name, repo) pack_ignore_path = os.path.join(pack.path, PACKS_PACK_IGNORE_FILE_NAME) # prepare .pack-ignore open(pack_ignore_path, 'a').close() ignore_test_set = get_ignore_pack_skipped_tests(fake_pack_name) assert len(ignore_test_set) == 0
def test_get_ignore_pack_tests__no_ignore_pack(tmpdir): """ Given - Pack doesn't have .pack-ignore file When - Collecting packs' ignored tests - running `get_ignore_pack_tests()` Then: - returns an empty set """ fake_pack_name = 'FakeTestPack' # prepare repo repo = Repo(tmpdir) repo_path = Path(repo.path) pack = Pack(repo_path / PACKS_DIR, fake_pack_name, repo) pack_ignore_path = os.path.join(pack.path, PACKS_PACK_IGNORE_FILE_NAME) # remove .pack-ignore if exists if os.path.exists(pack_ignore_path): os.remove(pack_ignore_path) ignore_test_set = get_ignore_pack_skipped_tests(fake_pack_name) assert len(ignore_test_set) == 0
def create_pack(self, name: Optional[str] = None): if name is None: name = f'pack_{len(self.packs)}' pack = Pack(self._packs_path, name, repo=self) self.packs.append(pack) return pack