def test_hard_link_or_raise_exception(self): with temporary_directory_context(): with fopen('src', 'w'): pass with self.assertRaises(FileAlreadyExists): hard_link_or_raise_exception('src', '.') hard_link_or_raise_exception('src', 'dst') with self.assertRaises(FileAlreadyExists): hard_link_or_raise_exception('src', 'dst')
def temporary_base_directory_context(self): from infi.app_repo.utils import temporary_directory_context with patch("infi.app_repo.config.get_base_directory") as get_base_directory: with temporary_directory_context() as tempdir: from infi.app_repo.config import Configuration get_base_directory.return_value = tempdir previous_base_directory = Configuration.base_directory.default Configuration.base_directory._default = tempdir try: yield tempdir finally: Configuration.base_directory._default = previous_base_directory
def temporary_base_directory_context(self): from infi.app_repo.utils import temporary_directory_context with patch("infi.app_repo.config.get_base_directory" ) as get_base_directory: with temporary_directory_context() as tempdir: from infi.app_repo.config import Configuration get_base_directory.return_value = tempdir previous_base_directory = Configuration.base_directory.default Configuration.base_directory._default = tempdir try: yield tempdir finally: Configuration.base_directory._default = previous_base_directory
def consume_file(self, filepath, platform, arch): from infi.app_repo.utils import sign_deb_package distribution_name, codename = platform.rsplit('-', 1) dirpath = self.deduce_dirname(distribution_name, codename, arch) hard_link_or_raise_exception(filepath, dirpath) sign_deb_package(filepath) with temporary_directory_context() as tempdir: hard_link_or_raise_exception(filepath, tempdir) contents = dpkg_scanpackages(['--multiversion', tempdir, '/dev/null']) relapath = dirpath.replace(path.join(self.base_directory, distribution_name), '').strip(path.sep) fixed_contents = contents.replace(tempdir, relapath) write_to_packages_file(dirpath, fixed_contents, 'a') self.generate_release_file_for_specific_distribution_and_version(distribution_name, codename)
def setUp(self): tempdir_context = utils.temporary_directory_context() self.tempdir = tempdir_context.__enter__() self.config = Munch(packages_directory=self.tempdir) self.addCleanup(tempdir_context.__exit__, None, None, None)