def test_12_prepare__localhost_noarch_w_build(self): server = MR.Server("localhost", topdir="/tmp/yum", baseurl="file:///tmp") repos = [MR.Repo("fedora", 18, ["x86_64", "i386"], server), MR.Repo("fedora", 19, ["x86_64", "i386"], server), MR.Repo("rhel", 6, ["x86_64", ], server)] srpm = MS.Srpm("/a/b/c/dummy.src.rpm") srpm.name = "foo" srpm.version = "1.0" srpm.noarch = True cs_expected = [] ucs = MCU.prepare_0(repos[0]) bcs = MCB.prepare_0(repos[0], srpm) # ['mock -r fedora-18-x86_64 ...'] dcmd = repos[0].server.deploy_cmd c0 = dcmd("/var/lib/mock/fedora-18-x86_64/result/*.src.rpm", "/tmp/yum/fedora/18/sources") c1 = dcmd("/var/lib/mock/fedora-18-x86_64/result/*.noarch.rpm", "/tmp/yum/fedora/18/x86_64") ctx = dict(other_archs_s="i386", primary_arch="x86_64", noarch_rpms="*.noarch.rpm") c2 = "cd /tmp/yum/fedora/18 && " + TT._MK_SYMLINKS_TO_NOARCH_RPM % ctx cs_expected.append(_join(bcs[0], c0, c1, c2, *ucs)) ucs = MCU.prepare_0(repos[1]) bcs = MCB.prepare_0(repos[1], srpm) # ['mock -r fedora-19-x86_64 ...'] dcmd = repos[1].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.append(_join(bcs[0], c0, c1, c2, *ucs)) ucs = MCU.prepare_0(repos[2]) bcs = MCB.prepare_0(repos[2], srpm) # ['mock -r rhel-6-x86_64 ...'] dcmd = repos[2].server.deploy_cmd c0 = dcmd("/var/lib/mock/rhel-6-x86_64/result/*.src.rpm", "/tmp/yum/rhel/6/sources") c1 = dcmd("/var/lib/mock/rhel-6-x86_64/result/*.noarch.rpm", "/tmp/yum/rhel/6/x86_64") cs_expected.append(_join(bcs[0], c0, c1, *ucs)) self.assertListEqual(TT.prepare(repos, srpm, True), cs_expected)
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 test_02_prepare_0_noarch(self): (repo, srpm) = (self.repo, self.srpm) cs_expected = ["mock -r fedora-19-x86_64 %s" % srpm.path] cs = TT.prepare_0(repo, srpm, logging.INFO) self.assertListEqual(cs, cs_expected)
def test_04_prepare_0_noarch__reponame(self): repo = mk_local_repos(reponame="fedora-custom", selfref=True)[1] srpm = self.srpm cs_expected = ["mock -r fedora-custom-19-x86_64 %s" % srpm.path] cs = TT.prepare_0(repo, srpm, logging.INFO) self.assertListEqual(cs, cs_expected)
def test_00_prepare_0(self): (repo, srpm) = (self.repo, self.srpm) srpm.noarch = False # Override it. cs_expected = ["mock -r fedora-19-x86_64 %s" % srpm.path, "mock -r fedora-19-i386 %s" % srpm.path] cs = TT.prepare_0(repo, srpm, logging.INFO) self.assertListEqual(cs, cs_expected)
def test_03_prepare_0__localhost_noarch_single_arch_repo_w_build(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 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") cs_expected = [_join(bcmds[0], c0, c1, *ucs)] self.assertListEqual(TT.prepare_0(repo, srpm, True), cs_expected)
def prepare_0(repo, srpm, build=False): """ Make up list of command strings to deploy built RPMs. :param repo: myrepo.repo.Repo instance :param srpm: myrepo.srpm.Srpm instance :param build: Build given srpm before deployment :return: List of command strings to deploy built RPMs. """ assert_repo(repo) assert_srpm(srpm) if build: bcs = MCB.prepare_0(repo, srpm) ucs = MCU.prepare_0(repo) dcmd = repo.server.deploy_cmd rpmdirs = repo.mockdirs(srpm) # TODO: Sub RPM packages may have completely different names. #rpmname_pre = "%s-%s-" % (srpm.name, srpm.version) rpmname_pre = '' c0 = dcmd(os.path.join(rpmdirs[0], rpmname_pre + "*.src.rpm"), os.path.join(repo.destdir, "sources")) if srpm.noarch: noarch_rpms = rpmname_pre + "*.noarch.rpm" if repo.other_archs: ctx = dict(other_archs_s=' '.join(repo.other_archs), primary_arch=repo.primary_arch, noarch_rpms=noarch_rpms) (sc, sc_dir) = repo.adjust_cmd(_MK_SYMLINKS_TO_NOARCH_RPM % ctx, repo.destdir) bc = MS.bind(dcmd(os.path.join(rpmdirs[0], noarch_rpms), os.path.join(repo.destdir, repo.primary_arch)), sc)[0] else: bc = dcmd(os.path.join(rpmdirs[0], noarch_rpms), os.path.join(repo.destdir, repo.primary_arch)) if build: cs = [MS.join(bcs[0], c0, bc, *ucs)] else: cs = [MS.join(c0, ucs[0]), MS.join(bc, *ucs[1:])] else: cs = [dcmd(os.path.join(d, rpmname_pre + "*.%s.rpm" % a), os.path.join(repo.destdir, a)) for d, a in itertools.izip(rpmdirs, repo.archs)] if build: cs = [MS.bind(bc, c)[0] for bc, c in itertools.izip(bcs, cs)] cs = [MS.join(c, uc) for c, uc in itertools.izip(cs, ucs[1:])] cs[0] = MS.join(cs[0], c0, ucs[0]) else: cs = [MS.join(c0, ucs[0])] + \ [MS.join(c, uc) for c, uc in itertools.izip(cs, ucs[1:])] return cs