[py-svn] r63188 - in py/trunk/py: . misc/testing

hpk at codespeak.net hpk at codespeak.net
Sat Mar 21 16:14:23 CET 2009


Author: hpk
Date: Sat Mar 21 16:14:22 2009
New Revision: 63188

Modified:
   py/trunk/py/_com.py
   py/trunk/py/misc/testing/test_com.py
Log:
allow reversed retrieval of methods


Modified: py/trunk/py/_com.py
==============================================================================
--- py/trunk/py/_com.py	(original)
+++ py/trunk/py/_com.py	Sat Mar 21 16:14:22 2009
@@ -120,7 +120,7 @@
     def isregistered(self, plugin):
         return plugin in self._plugins 
 
-    def listattr(self, attrname, plugins=None, extra=()):
+    def listattr(self, attrname, plugins=None, extra=(), reverse=False):
         l = []
         if plugins is None:
             plugins = self._plugins
@@ -131,6 +131,8 @@
                 l.append(getattr(plugin, attrname))
             except AttributeError:
                 continue 
+        if reverse:
+            l.reverse()
         return l
 
     def call_each(self, methname, *args, **kwargs):

Modified: py/trunk/py/misc/testing/test_com.py
==============================================================================
--- py/trunk/py/misc/testing/test_com.py	(original)
+++ py/trunk/py/misc/testing/test_com.py	Sat Mar 21 16:14:22 2009
@@ -154,14 +154,18 @@
     def test_listattr(self):
         plugins = PyPlugins()
         class api1:
-            x = 42
-        class api2:
             x = 41
+        class api2:
+            x = 42
+        class api3:
+            x = 43
         plugins.register(api1())
         plugins.register(api2())
+        plugins.register(api3())
         l = list(plugins.listattr('x'))
-        l.sort()
-        assert l == [41, 42]
+        assert l == [41, 42, 43]
+        l = list(plugins.listattr('x', reverse=True))
+        assert l == [43, 42, 41]
 
     def test_notify_anonymous_ordered(self):
         plugins = PyPlugins()



More information about the pytest-commit mailing list