[py-svn] r17200 - in py/dist/py/log: . testing

hpk at codespeak.net hpk at codespeak.net
Sun Sep 4 13:19:37 CEST 2005


Author: hpk
Date: Sun Sep  4 13:19:36 2005
New Revision: 17200

Modified:
   py/dist/py/log/consumer.py
   py/dist/py/log/producer.py
   py/dist/py/log/testing/test_log.py
Log:
add a set_consumer() helper method on Producers



Modified: py/dist/py/log/consumer.py
==============================================================================
--- py/dist/py/log/consumer.py	(original)
+++ py/dist/py/log/consumer.py	Sun Sep  4 13:19:36 2005
@@ -34,5 +34,5 @@
         if not hasattr(consumer, 'write'): 
             raise TypeError("%r should be None, callable or file-like" % (consumer,))
         consumer = File(consumer)
-    py.log.Producer.keywords2consumer[keywords] = consumer 
+    py.log.Producer(keywords).set_consumer(consumer)
 

Modified: py/dist/py/log/producer.py
==============================================================================
--- py/dist/py/log/producer.py	(original)
+++ py/dist/py/log/producer.py	Sun Sep  4 13:19:36 2005
@@ -49,11 +49,11 @@
         return producer 
     
     def __call__(self, *args):
-        func = self._getconsumer(self.keywords)
+        func = self.get_consumer(self.keywords)
         if func is not None: 
             func(self.Message(self.keywords, args))
    
-    def _getconsumer(self, keywords): 
+    def get_consumer(self, keywords): 
         for i in range(len(self.keywords), 0, -1): 
             try: 
                 return self.keywords2consumer[self.keywords[:i]]
@@ -61,6 +61,9 @@
                 continue
         return self.keywords2consumer.get('default', default_consumer)
 
+    def set_consumer(self, consumer): 
+        self.keywords2consumer[self.keywords] = consumer 
+
 default = Producer('default')
 
 def _getstate(): 

Modified: py/dist/py/log/testing/test_log.py
==============================================================================
--- py/dist/py/log/testing/test_log.py	(original)
+++ py/dist/py/log/testing/test_log.py	Sun Sep  4 13:19:36 2005
@@ -73,6 +73,14 @@
         assert l
         assert l[0].content() == "hello"
 
+    def test_simple_consumer_match_2(self): 
+        l = []
+        p = py.log.Producer("x1 x2")
+        p.set_consumer(l.append) 
+        p("42")
+        assert l
+        assert l[0].content() == "42"
+
     def test_setconsumer_with_producer(self): 
         l = []
         p = py.log.Producer("hello")



More information about the pytest-commit mailing list