From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1R43Mn-0005Kf-0v for garchives@archives.gentoo.org; Thu, 15 Sep 2011 04:16:01 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 8B97121C08A; Thu, 15 Sep 2011 04:15:53 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 4D1FA21C08A for ; Thu, 15 Sep 2011 04:15:53 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id A9F051B401B for ; Thu, 15 Sep 2011 04:15:52 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 0A97A80042 for ; Thu, 15 Sep 2011 04:15:52 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/tests/resolver/, pym/portage/tests/ebuild/ X-VCS-Repository: proj/portage X-VCS-Files: pym/portage/tests/ebuild/test_config.py pym/portage/tests/resolver/ResolverPlayground.py X-VCS-Directories: pym/portage/tests/resolver/ pym/portage/tests/ebuild/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: a5e7c15b03a9c6982f28ad2460261c98fe35889b Date: Thu, 15 Sep 2011 04:15:52 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: cac3758858eb2d79442f637e67264c57 commit: a5e7c15b03a9c6982f28ad2460261c98fe35889b Author: Zac Medico gentoo org> AuthorDate: Thu Sep 15 04:15:39 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Thu Sep 15 04:15:39 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3Da5e7c15b Test non-empty thin manifests. --- pym/portage/tests/ebuild/test_config.py | 21 ++++++++++++++++= ++++- pym/portage/tests/resolver/ResolverPlayground.py | 14 +++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/pym/portage/tests/ebuild/test_config.py b/pym/portage/tests/= ebuild/test_config.py index 3d0be19..f4869c6 100644 --- a/pym/portage/tests/ebuild/test_config.py +++ b/pym/portage/tests/ebuild/test_config.py @@ -200,9 +200,17 @@ class ConfigTestCase(TestCase): =20 def testManifest(self): =20 + distfiles =3D { + 'B-2.tar.bz2': b'binary\0content', + 'C-2.zip': b'binary\0content', + 'C-2.tar.bz2': b'binary\0content', + } + ebuilds =3D { "dev-libs/A-1::old_repo": { }, "dev-libs/A-2::new_repo": { }, + "dev-libs/B-2::new_repo": {"SRC_URI" : "B-2.tar.bz2"}, + "dev-libs/C-2::new_repo": {"SRC_URI" : "C-2.zip C-2.tar.bz2"}, } =20 repo_configs =3D { @@ -226,11 +234,22 @@ class ConfigTestCase(TestCase): success =3D True), ) =20 - playground =3D ResolverPlayground(ebuilds=3Debuilds, repo_configs=3Dre= po_configs) + playground =3D ResolverPlayground(ebuilds=3Debuilds, + repo_configs=3Drepo_configs, distfiles=3Ddistfiles) =20 new_manifest_file =3D os.path.join(playground.repo_dirs["new_repo"], "= dev-libs", "A", "Manifest") self.assertEqual(os.path.exists(new_manifest_file), False) =20 + new_manifest_file =3D os.path.join(playground.repo_dirs["new_repo"], "= dev-libs", "B", "Manifest") + f =3D open(new_manifest_file) + self.assertEqual(len(list(f)), 1) + f.close() + + new_manifest_file =3D os.path.join(playground.repo_dirs["new_repo"], "= dev-libs", "C", "Manifest") + f =3D open(new_manifest_file) + self.assertEqual(len(list(f)), 2) + f.close() + old_manifest_file =3D os.path.join(playground.repo_dirs["old_repo"], "= dev-libs", "A", "Manifest") f =3D open(old_manifest_file) self.assertEqual(len(list(f)), 1) diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/porta= ge/tests/resolver/ResolverPlayground.py index e22121d..5fb64cf 100644 --- a/pym/portage/tests/resolver/ResolverPlayground.py +++ b/pym/portage/tests/resolver/ResolverPlayground.py @@ -57,7 +57,7 @@ class ResolverPlayground(object): """ =20 def __init__(self, ebuilds=3D{}, installed=3D{}, profile=3D{}, repo_con= figs=3D{}, \ - user_config=3D{}, sets=3D{}, world=3D[], debug=3DFalse): + user_config=3D{}, sets=3D{}, world=3D[], distfiles=3D{}, debug=3DFalse= ): """ ebuilds: cpv -> metadata mapping simulating available ebuilds.=20 installed: cpv -> metadata mapping simulating installed packages. @@ -68,6 +68,7 @@ class ResolverPlayground(object): self.root =3D "/" self.eprefix =3D tempfile.mkdtemp() self.eroot =3D self.root + self.eprefix.lstrip(os.sep) + os.sep + self.distdir =3D os.path.join(self.eroot, "var", "portage", "distfiles= ") self.portdir =3D os.path.join(self.eroot, "usr/portage") self.vdbdir =3D os.path.join(self.eroot, "var/db/pkg") os.makedirs(self.portdir) @@ -80,6 +81,7 @@ class ResolverPlayground(object): #Make sure the main repo is always created self._get_repo_dir("test_repo") =20 + self._create_distfiles(distfiles) self._create_ebuilds(ebuilds) self._create_installed(installed) self._create_profile(ebuilds, installed, profile, repo_configs, user_c= onfig, sets) @@ -116,6 +118,12 @@ class ResolverPlayground(object): =20 return self.repo_dirs[repo] =20 + def _create_distfiles(self, distfiles): + os.makedirs(self.distdir) + for k, v in distfiles.items(): + with open(os.path.join(self.distdir, k), 'wb') as f: + f.write(v) + def _create_ebuilds(self, ebuilds): for cpv in ebuilds: a =3D Atom("=3D" + cpv, allow_repo=3DTrue) @@ -132,6 +140,7 @@ class ResolverPlayground(object): slot =3D metadata.pop("SLOT", 0) keywords =3D metadata.pop("KEYWORDS", "x86") homepage =3D metadata.pop("HOMEPAGE", None) + src_uri =3D metadata.pop("SRC_URI", None) iuse =3D metadata.pop("IUSE", "") depend =3D metadata.pop("DEPEND", "") rdepend =3D metadata.pop("RDEPEND", None) @@ -158,6 +167,8 @@ class ResolverPlayground(object): f.write('DESCRIPTION=3D"%s"\n' % desc) if homepage is not None: f.write('HOMEPAGE=3D"%s"\n' % homepage) + if src_uri is not None: + f.write('SRC_URI=3D"%s"\n' % src_uri) f.write('LICENSE=3D"' + str(lic) + '"\n') f.write('PROPERTIES=3D"' + str(properties) + '"\n') f.write('SLOT=3D"' + str(slot) + '"\n') @@ -454,6 +465,7 @@ class ResolverPlayground(object): =20 env =3D { "ACCEPT_KEYWORDS": "x86", + "DISTDIR" : self.distdir, "PORTDIR": self.portdir, "PORTDIR_OVERLAY": " ".join(portdir_overlay), 'PORTAGE_TMPDIR' : os.path.join(self.eroot, 'var/tmp'),