[Python-checkins] python/nondist/sandbox/setuptools/setuptools/tests test_resources.py, 1.4, 1.5

pje at users.sourceforge.net pje at users.sourceforge.net
Sun Apr 3 20:52:24 CEST 2005


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

Modified Files:
	test_resources.py 
Log Message:
Added "AvailableDistributions" class that finds and indexes usable
distributions; this replaces the previous "iter_distributions()" API.
Added basic platform support to Distribution and AvailableDistributions so
that platform-independent distros as well as local platform-compatible
distros are acceptable.  The actual platform scheme is currently delegated
to distutils.util.get_platform(), but needs to be replaced with a better
scheme of some kind, especially for OS X.


Index: test_resources.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setuptools/setuptools/tests/test_resources.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- test_resources.py	3 Apr 2005 01:21:08 -0000	1.4
+++ test_resources.py	3 Apr 2005 18:52:21 -0000	1.5
@@ -4,21 +4,53 @@
 
 class DistroTests(TestCase):
 
-    def testEmptyiter(self):
+    def testCollection(self):
         # empty path should produce no distributions
-        self.assertEqual(list(iter_distributions(path=[])), [])
+        ad = AvailableDistributions([])
+        self.assertEqual(list(ad), [])
+        self.assertEqual(len(ad),0)
+        self.assertEqual(ad.get('FooPkg'),None)
+        self.failIf('FooPkg' in ad)
+        ad.add(Distribution.from_filename("FooPkg-1.3_1.egg"))
+        ad.add(Distribution.from_filename("FooPkg-1.4-py2.4-win32.egg"))
+        ad.add(Distribution.from_filename("FooPkg-1.2-py2.4.egg"))
+
+        # Name is in there now
+        self.failUnless('FooPkg' in ad)
+
+        # But only 1 package
+        self.assertEqual(list(ad), ['foopkg'])
+        self.assertEqual(len(ad),1)
+
+        # Distributions sort by version
+        self.assertEqual(
+            [dist.version for dist in ad['FooPkg']], ['1.4','1.3-1','1.2']
+        )
+
+        # Removing a distribution leaves sequence alone
+        ad.remove(ad['FooPkg'][1])
+        self.assertEqual(
+            [dist.version for dist in ad.get('FooPkg')], ['1.4','1.2']
+        )
+
+        # And inserting adds them in order
+        ad.add(Distribution.from_filename("FooPkg-1.9.egg"))
+        self.assertEqual(
+            [dist.version for dist in ad['FooPkg']], ['1.9','1.4','1.2']
+        )
 
     def checkFooPkg(self,d):
         self.assertEqual(d.name, "FooPkg")
         self.assertEqual(d.key, "foopkg")
         self.assertEqual(d.version, "1.3-1")
         self.assertEqual(d.py_version, "2.4")
+        self.assertEqual(d.platform, "win32")
         self.assertEqual(d.parsed_version, parse_version("1.3-1"))
-        
+
     def testDistroBasics(self):
         d = Distribution(
             "/some/path",
-            name="FooPkg",version="1.3-1",py_version="2.4"
+            name="FooPkg",version="1.3-1",py_version="2.4",platform="win32"
         )
         self.checkFooPkg(d)
         self.failUnless(d.installed_on(["/some/path"]))
@@ -26,11 +58,20 @@
 
         d = Distribution("/some/path")
         self.assertEqual(d.py_version, sys.version[:3])
+        self.assertEqual(d.platform, None)
 
     def testDistroParse(self):
         d = Distribution.from_filename("FooPkg-1.3_1-py2.4-win32.egg")
         self.checkFooPkg(d)
-        
+
+
+
+
+
+
+
+
+
 
 
 
@@ -107,7 +148,7 @@
         0.79.9999+0.80.0pre2-3 0.79.9999+0.80.0pre2-2
         0.77.2-1 0.77.1-1 0.77.0-1
         """.split()
-        
+
         for p,v1 in enumerate(torture):
             for v2 in torture[p+1:]:
                 c(v2,v1)



More information about the Python-checkins mailing list