[Python-checkins] python/nondist/sandbox/setuptools/setuptools/tests test_resources.py, 1.8, 1.9

pje@users.sourceforge.net pje at users.sourceforge.net
Sun May 22 22:28:49 CEST 2005


Update of /cvsroot/python/python/nondist/sandbox/setuptools/setuptools/tests
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21794/setuptools/tests

Modified Files:
	test_resources.py 
Log Message:
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.


Index: test_resources.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setuptools/setuptools/tests/test_resources.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- test_resources.py	22 May 2005 19:40:22 -0000	1.8
+++ test_resources.py	22 May 2005 20:28:47 -0000	1.9
@@ -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 @@
         return yield_lines(self.get_metadata(name))
 
 
-
 class DistroTests(TestCase):
 
     def testCollection(self):
@@ -167,12 +167,13 @@
     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 @@
             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 @@
                     """
                 )
             ),
-            [(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"))
 



More information about the Python-checkins mailing list