diff options
author | pje <pje@6015fed2-1504-0410-9fe1-9d1591cc4771> | 2005-05-22 20:28:47 +0000 |
---|---|---|
committer | pje <pje@6015fed2-1504-0410-9fe1-9d1591cc4771> | 2005-05-22 20:28:47 +0000 |
commit | 39907112d465d97c9a78f4da52e13841f620c223 (patch) | |
tree | 6a388653cd482deb7ad61674d9649b51d619ff0b /setuptools | |
parent | d00c07f5403a6588b1da7b79baff59bb2b7ba76c (diff) | |
download | python-setuptools-39907112d465d97c9a78f4da52e13841f620c223.tar.gz |
Added support for specifying options on requirements, so that a package's
optional dependencies can be included when processing nested dependencies.
Next up: tests for the resolve() algorithm.
git-svn-id: http://svn.python.org/projects/sandbox/trunk/setuptools@41008 6015fed2-1504-0410-9fe1-9d1591cc4771
Diffstat (limited to 'setuptools')
-rw-r--r-- | setuptools/tests/test_resources.py | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/setuptools/tests/test_resources.py b/setuptools/tests/test_resources.py index 477cffe..e2135ab 100644 --- a/setuptools/tests/test_resources.py +++ b/setuptools/tests/test_resources.py @@ -1,6 +1,7 @@ from unittest import TestCase, makeSuite from pkg_resources import * import pkg_resources, sys +from sets import ImmutableSet class Metadata: """Mock object to return metadata as if from an on-disk distribution""" @@ -18,7 +19,6 @@ class Metadata: return yield_lines(self.get_metadata(name)) - class DistroTests(TestCase): def testCollection(self): @@ -167,12 +167,13 @@ class RequirementsTests(TestCase): def testBasics(self): r = Requirement.parse("Twisted>=1.2") self.assertEqual(str(r),"Twisted>=1.2") - self.assertEqual(repr(r),"Requirement('Twisted', [('>=', '1.2')])") + self.assertEqual(repr(r),"Requirement('Twisted', [('>=', '1.2')], ())") self.assertEqual(r, Requirement("Twisted", [('>=','1.2')])) self.assertEqual(r, Requirement("twisTed", [('>=','1.2')])) self.assertNotEqual(r, Requirement("Twisted", [('>=','2.0')])) self.assertNotEqual(r, Requirement("Zope", [('>=','1.2')])) self.assertNotEqual(r, Requirement("Zope", [('>=','3.0')])) + self.assertNotEqual(r, Requirement.parse("Twisted[extras]>=1.2")) def testOrdering(self): r1 = Requirement("Twisted", [('==','1.2c1'),('>=','1.2')]) @@ -202,6 +203,46 @@ class RequirementsTests(TestCase): self.failUnless(v not in r, (v,r)) + def testOptionsAndHashing(self): + r1 = Requirement.parse("Twisted[foo,bar]>=1.2") + r2 = Requirement.parse("Twisted[bar,FOO]>=1.2") + r3 = Requirement.parse("Twisted[BAR,FOO]>=1.2.0") + self.assertEqual(r1,r2) + self.assertEqual(r1,r3) + self.assertEqual(r1.options, ("foo","bar")) + self.assertEqual(r2.options, ("bar","FOO")) + self.assertEqual(hash(r1), hash(r2)) + self.assertEqual( + hash(r1), hash(("twisted", ((">=",parse_version("1.2")),), + ImmutableSet(["foo","bar"]))) + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + class ParseTests(TestCase): @@ -233,7 +274,7 @@ class ParseTests(TestCase): """ ) ), - [(None,["x"]), ("y",["z","a"]), ("b",["c"]), ("q",["v"])] + [(None,["x"]), ("y",["z","a"]), ("b",["c"]), ("d",[]), ("q",["v"])] ) self.assertRaises(ValueError,list,pkg_resources.split_sections("[foo")) |