Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    def test_00_prepare_0__localhost(self):
        repo = MR.Repo("fedora", 19, ["x86_64", "i386"], self.server)
        subdirs = ["sources"] + repo.archs

        cs_expected = ["cd %s && %s" % (os.path.join(repo.destdir, a),
                                        TT._CMD_TEMPLATE) for a in subdirs]
        cs = TT.prepare_0(repo)
        self.assertListEqual(cs, cs_expected)
Пример #4
0
    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)
Пример #5
0
    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)
Пример #6
0
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