def unpack(self, unpackdir) -> None: pkgs_abs_path = glob.glob(os.path.join(self._downloaddir, '*.deb')) for pkg in pkgs_abs_path: sources.Deb(None, None).provision(unpackdir, src=pkg, clean_target=False, keep_deb=True) self.normalize(unpackdir)
def test_pull_debfile_must_download_and_extract(self): dest_dir = 'src' os.makedirs(dest_dir) deb_file_name = 'test.deb' source = 'http://{}:{}/{file_name}'.format(*self.server.server_address, file_name=deb_file_name) deb_source = sources.Deb(source, dest_dir) deb_source.pull() self.mock_deb.assert_called_once_with( os.path.join(deb_source.source_dir, deb_file_name))
def test_extract_and_keep_debfile(self): deb_file_name = 'test.deb' source = 'http://{}:{}/{file_name}'.format(*self.server.server_address, file_name=deb_file_name) dest_dir = os.path.abspath(os.curdir) deb_source = sources.Deb(source, dest_dir) deb_source.download() deb_source.provision(dst=dest_dir, keep_deb=True) deb_download = os.path.join(deb_source.source_dir, deb_file_name) self.mock_deb.assert_called_once_with( os.path.join(deb_source.source_dir, deb_file_name)) with open(deb_download, 'r') as deb_file: self.assertEqual('Test fake compressed file', deb_file.read())
def test_extract_and_keep_debfile(self): deb_file_name = "test.deb" source = "http://{}:{}/{file_name}".format(*self.server.server_address, file_name=deb_file_name) dest_dir = os.path.abspath(os.curdir) deb_source = sources.Deb(source, dest_dir) deb_source.download() deb_source.provision(dst=dest_dir, keep_deb=True) deb_download = os.path.join(deb_source.source_dir, deb_file_name) self.mock_ar.assert_called_once_with( os.path.join(deb_source.source_dir, deb_file_name)) with open(deb_download, "r") as deb_file: self.assertThat(deb_file.read(), Equals("Test fake file"))
def test_invalid_deb(self): self.mock_ar.return_value.getnames.return_value = [ 'control.tar.gz', 'debian-binary' ] deb_file_name = 'test.deb' source = 'http://{}:{}/{file_name}'.format(*self.server.server_address, file_name=deb_file_name) dest_dir = os.path.abspath(os.curdir) deb_source = sources.Deb(source, dest_dir) deb_source.download() self.assertRaises(sources.errors.InvalidDebError, deb_source.provision, dst=dest_dir, keep_deb=True)