def test_01_prepare_0__localhost_noarch_multi_archs_repo_w_build(self): server = MR.Server("localhost", topdir="/tmp/yum", baseurl="file:///tmp") repo = MR.Repo("fedora", 19, ["x86_64", "i386"], server) srpm = MS.Srpm("/a/b/c/dummy.src.rpm") srpm.name = "foo" srpm.version = "1.0" srpm.noarch = True bcmds = MCB.prepare_0(repo, srpm) ucs = MCU.prepare_0(repo) dcmd = repo.server.deploy_cmd c0 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.src.rpm", "/tmp/yum/fedora/19/sources") c1 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.noarch.rpm", "/tmp/yum/fedora/19/x86_64") ctx = dict(other_archs_s="i386", primary_arch="x86_64", noarch_rpms="*.noarch.rpm") c2 = "cd /tmp/yum/fedora/19 && " + TT._MK_SYMLINKS_TO_NOARCH_RPM % ctx cs_expected = [_join(bcmds[0], c0, c1, c2, *ucs)] self.assertListEqual(TT.prepare_0(repo, srpm, True), cs_expected)
def prepare_0(repo, ctx, deploy=False, eof=None): """ Make up list of command strings to generate repo's metadata rpms. :param repo: myrepo.repo.Repo instance :param ctx: Context object to instantiate the template :param deploy: Deploy generated yum repo metadata RPMs also if True :param eof: The function to generate EOF marker strings for here docuemnts or None, that is, it will be generated automatically. :return: List of command strings to deploy built RPMs. """ assert_repo(repo) _check_vars_for_template(ctx, ["workdir", "tpaths"]) files = list(gen_repo_files_g(repo, ctx, ctx["workdir"], ctx["tpaths"])) rpmspec = files[-1][0] # FIXME: Ugly hack! (see ``gen_repo_files_g``) mockcfg_gen_cmds = list(gen_mockcfg_files_cmd_g(repo, ctx, ctx["workdir"], ctx["tpaths"], eof)) cs = ["mkdir -p " + ctx["workdir"]] keyid = ctx.get("keyid", False) if keyid: cs.append(mk_export_gpgkey_cmd(keyid, ctx["workdir"], repo)) cs += ( [mk_write_file_cmd(p, c, eof) for p, c in files] + mockcfg_gen_cmds + [mk_build_srpm_cmd(rpmspec, ctx.get("verbose", False))] ) # NOTE: cmd to build srpm must wait for the completion of previous commands # to generate files; .repo file, the rpm spec and mock.cfg files: c = MS.join(*cs) if not deploy: return [c] srpm = _mk_repo_metadata_srpm_obj(repo, ctx["workdir"]) dcs = MCD.prepare_0(repo, srpm, build=True) assert len(dcs) == 1, "Deploy commands not matched w/ expected: \n" + str(dcs) return [MS.join(c, *dcs)]
def test_02_prepare_0__localhost_noarch_single_arch_repo(self): server = MR.Server("localhost", topdir="/tmp/yum", baseurl="file:///tmp") repo = MR.Repo("fedora", 19, ["x86_64"], server) srpm = MS.Srpm("/a/b/c/dummy.src.rpm") srpm.name = "foo" srpm.version = "1.0" srpm.noarch = True ucs = MCU.prepare_0(repo) dcmd = repo.server.deploy_cmd c0 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.src.rpm", "/tmp/yum/fedora/19/sources") c1 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.noarch.rpm", "/tmp/yum/fedora/19/x86_64") cs_expected = [_join(c0, ucs[0]), _join(c1, *ucs[1:])] self.assertListEqual(TT.prepare_0(repo, srpm), cs_expected)
def test_05_prepare_0__localhost_w_build(self): server = MR.Server("localhost", topdir="/tmp/yum", baseurl="file:///tmp") repo = MR.Repo("fedora", 19, ["x86_64", "i386"], server) srpm = MS.Srpm("/a/b/c/dummy.src.rpm") srpm.name = "foo" srpm.version = "1.0" srpm.noarch = False bcs = MCB.prepare_0(repo, srpm) ucs = MCU.prepare_0(repo) dcmd = repo.server.deploy_cmd c0 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.src.rpm", "/tmp/yum/fedora/19/sources") c1 = dcmd("/var/lib/mock/fedora-19-x86_64/result/*.x86_64.rpm", "/tmp/yum/fedora/19/x86_64") c2 = dcmd("/var/lib/mock/fedora-19-i386/result/*.i386.rpm", "/tmp/yum/fedora/19/i386") cs_expected = [_join(bcs[0], c1, ucs[1], c0, ucs[0]), _join(bcs[1], c2, ucs[2])] self.assertListEqual(TT.prepare_0(repo, srpm, True), cs_expected)