def _setup_release(self): # start fresh system.clear_caches() if os.path.exists(self.install_root): shutil.rmtree(self.install_root) if os.path.exists(self.src_root): shutil.rmtree(self.src_root) shutil.copytree(self.src_path, self.src_root) self.packagefile = os.path.join(self.src_root, "package.yaml") with open(self.packagefile) as f: self.package_data = yaml.load(f.read(), Loader=yaml.FullLoader) # check build system type buildsys = create_build_system(self.src_root, verbose=True) self.assertEqual(buildsys.name(), "bez") # create the vcs - should error because stub file doesn't exist yet with self.assertRaises(ReleaseVCSError): create_release_vcs(self.src_root) # make the stub file self.stubfile = os.path.join(self.src_root, ".stub") with open(self.stubfile, 'w'): pass # create the vcs - should work now self.vcs = create_release_vcs(self.src_root) self.assertEqual(self.vcs.name(), "stub")
def _setup_release(self): # start fresh system.clear_caches() if os.path.exists(self.install_root): shutil.rmtree(self.install_root) if os.path.exists(self.src_root): shutil.rmtree(self.src_root) shutil.copytree(self.src_path, self.src_root) self.packagefile = os.path.join(self.src_root, "package.yaml") with open(self.packagefile) as f: self.package_data = yaml.load(f.read()) # create the build system self.buildsys = create_build_system(self.src_root, verbose=True) self.assertEqual(self.buildsys.name(), "bez") # create the vcs - should error because stub file doesn't exist yet with self.assertRaises(ReleaseVCSError): create_release_vcs(self.src_root) # make the stub file self.stubfile = os.path.join(self.src_root, ".stub") with open(self.stubfile, 'w'): pass # create the vcs - should work now self.vcs = create_release_vcs(self.src_root) self.assertEqual(self.vcs.name(), "stub")
def _reset_dest_repository(self): system.clear_caches() if os.path.exists(self.dest_install_root): shutil.rmtree(self.dest_install_root) os.makedirs(self.dest_install_root)
def test_1(self): """Basic release.""" # start fresh system.clear_caches() if os.path.exists(self.install_root): shutil.rmtree(self.install_root) if os.path.exists(self.src_root): shutil.rmtree(self.src_root) shutil.copytree(self.src_path, self.src_root) working_dir = self.src_root packagefile = os.path.join(working_dir, "package.yaml") with open(packagefile) as f: package_data = yaml.load(f.read()) def _write_package(): with open(packagefile, 'w') as f: dump_package_data(package_data, f, format_=FileFormat.yaml) # create the build system buildsys = create_build_system(working_dir, verbose=True) self.assertEqual(buildsys.name(), "bez") # create the vcs with self.assertRaises(ReleaseVCSError): vcs = create_release_vcs(working_dir) stubfile = os.path.join(working_dir, ".stub") with open(stubfile, 'w'): pass vcs = create_release_vcs(working_dir) self.assertEqual(vcs.name(), "stub") def _create_builder(ensure_latest=True): return create_build_process(process_type="local", working_dir=working_dir, build_system=buildsys, vcs=vcs, ensure_latest=ensure_latest, ignore_existing_tag=True, verbose=True) # release should fail because release path does not exist builder = _create_builder() with self.assertRaises(ReleaseError): builder.release() # release should work this time os.mkdir(self.install_root) builder.release() # check a file to see the release made it filepath = os.path.join(self.install_root, "foo", "1.0", "data", "data.txt") self.assertTrue(os.path.exists(filepath)) # failed release (same version released again) builder = _create_builder() num_variants = builder.release() self.assertEqual(num_variants, 0) # update package version and release again package_data["version"] = "1.1" _write_package() builder = _create_builder() builder.release() # change version to earlier and do failed release attempt package_data["version"] = "1.0.1" _write_package() builder = _create_builder() with self.assertRaises(ReleaseError): builder.release() # release again, this time allow not latest builder = _create_builder(ensure_latest=False) builder.release() # change uuid and do failed release attempt package_data["version"] = "1.2" package_data["uuid"] += "_CHANGED" _write_package() builder = _create_builder() with self.assertRaises(ReleaseError): builder.release() # check the vcs contains the tags we expect expected_value = set(["foo-1.0", "foo-1.0.1", "foo-1.1"]) with open(stubfile) as f: stub_data = yaml.load(f.read()) tags = set(stub_data.get("tags", {}).keys()) self.assertEqual(tags, expected_value) # check the package install path contains the packages we expect it = iter_packages("foo", paths=[self.install_root]) qnames = set(x.qualified_name for x in it) self.assertEqual(qnames, expected_value)