Revision: 18ce7ef73204
Author: Mikko Korpela <[email protected]>
Date: Wed Nov 16 01:00:34 2011
Log: CombiningVisitor namespace cleanup
http://code.google.com/p/robotframework/source/detail?r=18ce7ef73204
Modified:
/src/robot/result/combiningvisitor.py
=======================================
--- /src/robot/result/combiningvisitor.py Mon Nov 14 03:22:03 2011
+++ /src/robot/result/combiningvisitor.py Wed Nov 16 01:00:34 2011
@@ -13,23 +13,23 @@
# limitations under the License.
from robot.result.visitor import ResultVisitor
-
class CombiningVisitor(ResultVisitor):
def __init__(self, *visitors):
self._visitors = visitors
-
-def _create_method(method_name):
- def delegate_call(self, item):
- for visitor in self._visitors:
- getattr(visitor, method_name)(item)
- setattr(CombiningVisitor, method_name, delegate_call)
-
-for method_name in (pre+'_'+post
- for pre in ('start', 'end') \
- for post in
('suite', 'test', 'keyword', 'message', 'errors')):
- _create_method(method_name)
-_create_method('visit_statistics')
+ for name in dir(self):
+ if name.startswith('start') or name.startswith('end'):
+ self._create_delegating_method(name)
+ self._create_delegating_method('visit_statistics')
+
+ def _create_delegating_method(self, method_name):
+ setattr(self, method_name, self._delegate_call(method_name))
+
+ def _delegate_call(self, method_name):
+ def delegator(item):
+ for visitor in self._visitors:
+ getattr(visitor, method_name)(item)
+ return delegator
class KeywordRemovingVisitor(ResultVisitor):