summaryrefslogtreecommitdiff
path: root/setuptools/tests/test_resources.py
diff options
context:
space:
mode:
authorpje <pje@6015fed2-1504-0410-9fe1-9d1591cc4771>2005-05-22 20:28:47 +0000
committerpje <pje@6015fed2-1504-0410-9fe1-9d1591cc4771>2005-05-22 20:28:47 +0000
commit39907112d465d97c9a78f4da52e13841f620c223 (patch)
tree6a388653cd482deb7ad61674d9649b51d619ff0b /setuptools/tests/test_resources.py
parentd00c07f5403a6588b1da7b79baff59bb2b7ba76c (diff)
downloadpython-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/tests/test_resources.py')
-rw-r--r--setuptools/tests/test_resources.py47
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"))