def _get_paths(self): if self.paths is not None: # Apply in reverse order to get the expected hierarchy. for path_descriptor in reversed(self.paths): # Use the helper factory to get an object # capable of managing each dependency. yield EDF.PathEnv(path_descriptor)
def test_verify_no_directory(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % invalid_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) self.assertFalse(ext_dep.verify(logversion=False))
def test_verify_down_level_repo(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % behind_one_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) ext_dep.fetch() self.assertTrue(ext_dep.verify(logversion=False), "Confirm valid ext_dep at one commit behind") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % uptodate_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) self.assertFalse(ext_dep.verify(logversion=False), "Confirm downlevel repo fails to verify") ext_dep.fetch() self.assertTrue(ext_dep.verify(logversion=False), "Confirm repo can be updated")
def test_verify_up_to_date(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % uptodate_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) ext_dep.fetch() self.assertTrue(ext_dep.verify(logversion=False))
def test_verify_empty_repo_dir(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % invalid_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) os.makedirs(ext_dep._local_repo_root_path, exist_ok=True) self.assertFalse(ext_dep.verify(logversion=False))
def test_clean_no_directory(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % uptodate_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) self.assertFalse(os.path.isdir(ext_dep.contents_dir), "Confirm not ext dep directory before cleaning") ext_dep.clean() self.assertFalse(os.path.isdir(ext_dep.contents_dir))
def test_fetch_verify_non_existant_repo_commit_hash(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % invalid_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) ext_dep.fetch() self.assertEqual(ext_dep.version, invalid_version) self.assertFalse(ext_dep.verify(logversion=False), "Should not verify")
def test_fetch_verify_good_repo_at_not_top_of_tree(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % behind_one_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) ext_dep.fetch() self.assertTrue(ext_dep.verify(logversion=False)) self.assertEqual(ext_dep.version, behind_one_version)
def test_fail_with_bad_url(self): ext_dep_file_path = os.path.join(test_dir, "bad_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(bad_json_file) ext_dep_descriptor = EDF.ExternDepDescriptor( ext_dep_file_path).descriptor_contents ext_dep = WebDependency(ext_dep_descriptor) with self.assertRaises(urllib.error.HTTPError): ext_dep.fetch() self.fail("should have thrown an Exception")
def test_clean_clean_repo(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % uptodate_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) ext_dep.fetch() self.assertTrue(ext_dep.verify(), "Confirm repo is valid and clean") ext_dep.clean() self.assertFalse(os.path.isdir(ext_dep.contents_dir))
def test_clean_dir_but_not_git_repo(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % invalid_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) os.makedirs(ext_dep._local_repo_root_path, exist_ok=True) with open(os.path.join(ext_dep._local_repo_root_path, "testfile.txt"), 'a') as myfile: myfile.write("Test code\n") ext_dep.clean() self.assertFalse(os.path.isdir(ext_dep.contents_dir))
def test_verify_dirty_git_repo(self): ext_dep_file_path = os.path.join(test_dir, "hw_ext_dep.json") with open(ext_dep_file_path, "w+") as ext_dep_file: ext_dep_file.write(hw_json_template % uptodate_version) ext_dep_descriptor = EDF.ExternDepDescriptor(ext_dep_file_path).descriptor_contents ext_dep = GitDependency(ext_dep_descriptor) ext_dep.fetch() # now write a new file with open(os.path.join(ext_dep._local_repo_root_path, "testfile.txt"), 'a') as myfile: myfile.write("Test code to make repo dirty\n") self.assertFalse(ext_dep.verify(logversion=False))