def test_construction(self): r_provides = () r_id = hashlib.md5(six.b("numpy-1.3.0")).hexdigest() package = Package("numpy", V("1.3.0")) self.assertEqual(package.provides, r_provides) self.assertEqual(package.dependencies, ()) self.assertEqual(package.id, r_id) r_provides = (R("numpy == 1.3.0"),) r_id = hashlib.md5(six.b("nomkl_numpy-1.3.0")).hexdigest() package = Package("nomkl_numpy", V("1.3.0"), provides=r_provides) self.assertEqual(package.provides, r_provides) self.assertEqual(package.id, r_id)
def from_string(cls, literal_string, pool): if literal_string.startswith("-"): is_not = True _, name, version = literal_string.split("-", 2) else: is_not = False name, version = literal_string.split("-") package = Package(name, Version.from_string(version)) if not pool.has_package(package): raise MissingPackageInPool(package) if is_not: return PackageNot(package.id, pool) else: return PackageLiteral(package.id, pool)
def find_package(self, name, version): """Find the package with the given name and version (exact match). Parameters ---------- name: str Name of the package(s) to look for version: str Name of the package(s) to look for Returns ------- package: Package or None The package if found, None otherwise. """ package = Package(name, Version.from_string(version)) return self._id_to_package.get(package.unique_name, None)
def test_provides(self): r_package = Package("nomkl_numpy", V("1.6.0"), provides=[R("numpy == 1.6.0")]) package = Package.from_string("nomkl_numpy-1.6.0; provides (numpy == 1.6.0)") self.assertEqual(package, r_package)
def test_dependencies(self): r_package = Package("numpy", V("1.6.0"), dependencies=[R("mkl >= 10.3.0")]) package = Package.from_string("numpy-1.6.0; depends (mkl >= 10.3.0)") self.assertEqual(package, r_package)
def test_simple(self): r_package = Package("numpy", V("1.3.0")) self.assertEqual(Package.from_string("numpy-1.3.0"), r_package) self.assertRaises(ValueError, lambda: Package.from_string("numpy 1.3.0"))
def test_repr(self): package = Package("numpy", V("1.3.0")) self.assertEqual(repr(package), "Package('numpy-1.3.0')") package = Package("numpy", V("1.6.0"), dependencies=[R("mkl >= 10.3.0")]) self.assertEqual(repr(package), "Package('numpy-1.6.0; depends (mkl >= 10.3.0)')")
def test_str(self): provides = set([R("numpy == 1.3.0")]) package = Package("nomkl_numpy", V("1.3.0"), provides=provides) self.assertEqual(str(package), "nomkl_numpy-1.3.0")
def test_unique_name(self): package = Package("numpy", V("1.3.0")) self.assertEqual(package.unique_name, "numpy-1.3.0")
import unittest from depsolver.package \ import \ Package from depsolver.repository \ import \ Repository from depsolver.version \ import \ Version numpy_1_6_1 = Package("numpy", Version.from_string("1.6.1")) numpy_1_7_0 = Package("numpy", Version.from_string("1.7.0")) scipy_0_11_0 = Package("scipy", Version.from_string("0.11.0")) class TestRepository(unittest.TestCase): def test_simple_construction(self): repo = Repository() self.assertEqual(repo.list_packages(), []) r_packages = [numpy_1_6_1, numpy_1_7_0, scipy_0_11_0] repo = Repository(r_packages) packages = set(repo.iter_packages()) self.assertEqual(packages, set(r_packages)) def test_has_package(self): packages = [numpy_1_6_1, numpy_1_7_0, scipy_0_11_0]
import \ MATCH, MATCH_NAME, MATCH_PROVIDE, Pool from depsolver.repository \ import \ Repository from depsolver.requirement \ import \ Requirement from depsolver.version \ import \ Version V = Version.from_string R = Requirement.from_string mkl_10_1_0 = Package("mkl", V("10.1.0")) mkl_10_2_0 = Package("mkl", V("10.2.0")) mkl_10_3_0 = Package("mkl", V("10.3.0")) mkl_11_0_0 = Package("mkl", V("11.0.0")) numpy_1_6_0 = Package("numpy", V("1.6.0"), dependencies=[R("mkl")]) numpy_1_6_1 = Package("numpy", V("1.6.1"), dependencies=[R("mkl")]) numpy_1_7_0 = Package("numpy", V("1.7.0"), dependencies=[R("mkl >= 11.0.0")]) nomkl_numpy_1_7_0 = Package("nomkl_numpy", V("1.7.0"), provides=[R("numpy == 1.7.0")]) class TestPool(unittest.TestCase): def test_simple(self):