Revision: 2886
Author: janne.t.harkonen
Date: Thu Apr  8 21:11:34 2010
Log: Renamed module, whitespace cleanup
http://code.google.com/p/robotframework/source/detail?r=2886

Added:
 /trunk/utest/running/test_handlers.py
Deleted:
 /trunk/utest/running/test_basehandlers.py
Modified:
 /trunk/utest/running/test_userhandlers.py

=======================================
--- /dev/null
+++ /trunk/utest/running/test_handlers.py       Thu Apr  8 21:11:34 2010
@@ -0,0 +1,241 @@
+import unittest
+import sys
+from types import *
+
+from robot.running.handlers import _RunnableHandler, _PythonHandler, \
+        _JavaHandler, DynamicHandler
+from robot import utils
+from robot.errors import *
+from robot.utils.asserts import *
+from robot.running.testlibraries import TestLibrary
+
+from classes import NameLibrary, DocLibrary, ArgInfoLibrary
+from ArgumentsPython import ArgumentsPython
+if utils.is_jython:
+    import ArgumentsJava
+
+
+def _get_handler_methods(lib):
+    attrs = [ getattr(lib, a) for a in dir(lib) if not a.startswith('_') ]
+    return [ a for a in attrs if type(a) is MethodType ]
+
+def _get_java_handler_methods(lib):
+ # This hack assumes that all java handlers used start with 'a_' -- easier
+    # than excluding 'equals' etc. otherwise
+ return [ a for a in _get_handler_methods(lib) if a.__name__.startswith('a_') ]
+
+
+class LibraryMock:
+    def __init__(self, name='MyLibrary', scope='GLOBAL'):
+        self.name = name
+        self.scope = scope
+
+
+class TestPythonHandler(unittest.TestCase):
+
+    def test_name(self):
+        for method in _get_handler_methods(NameLibrary()):
+ handler = _PythonHandler(LibraryMock('mylib'), method.__name__, method)
+            assert_equals(handler.name, method.__doc__)
+            assert_equals(handler.longname, 'mylib.'+method.__doc__)
+
+    def test_docs(self):
+        for method in _get_handler_methods(DocLibrary()):
+ handler = _PythonHandler(LibraryMock(), method.__name__, method)
+            assert_equals(handler.doc, method.expected_doc)
+            assert_equals(handler.shortdoc, method.expected_shortdoc)
+
+    def test_get_arg_info(self):
+        for method in _get_handler_methods(ArgInfoLibrary()):
+ handler = _PythonHandler(LibraryMock(), method.__name__, method)
+            expected = eval(method.__doc__)
+            assert_equals(handler.arguments._get_arg_spec(method),
+                          expected, method.__name__)
+
+    def test_arg_limits(self):
+        for method in _get_handler_methods(ArgumentsPython()):
+ handler = _PythonHandler(LibraryMock(), method.__name__, method)
+            exp_mina, exp_maxa = eval(method.__doc__)
+            assert_equals(handler.arguments.minargs, exp_mina)
+            assert_equals(handler.arguments.maxargs, exp_maxa)
+
+    def test_getarginfo_getattr(self):
+        testlib = TestLibrary('classes.GetattrLibrary')
+        handlers = testlib.handlers.values()
+        assert_equals(len(handlers), 3)
+        for handler in handlers:
+            assert_true(handler.name in ['Foo','Bar','Zap'])
+            assert_equals(handler.minargs, 0)
+            assert_equals(handler.maxargs, sys.maxint)
+
+
+class TestDynamicHandlerCreation(unittest.TestCase):
+
+ _type_err_msg = 'Argument specification should be list/array of Strings.'
+
+    def test_with_none_doc(self):
+        assert_equals(self._create_handler().doc, '')
+
+    def test_with_empty_doc(self):
+         assert_equals(self._create_handler('').doc, '')
+
+    def test_with_non_empty_doc(self):
+        doc = 'This is some documentation'
+        assert_equals(self._create_handler(doc).doc, doc)
+
+    def test_with_non_string_doc(self):
+        doc = ['this', 'is', 'doc']
+        assert_equals(self._create_handler(doc).doc, str(doc))
+        doc = lambda x: None
+        assert_equals(self._create_handler(doc).doc, str(doc))
+
+    def test_with_none_argspec(self):
+        self._assert_arg_specs(self._create_handler(), 0, sys.maxint,
+                               vararg='<unknown>')
+
+    def test_with_empty_argspec(self):
+        self._assert_arg_specs(self._create_handler(argspec=[]), 0, 0)
+
+    def test_with_mandatory_args(self):
+        for args in [ ['arg'], ['arg1', 'arg2', 'arg3'] ]:
+            handler = self._create_handler(argspec=args)
+            self._assert_arg_specs(handler, len(args), len(args), args)
+
+    def test_with_only_default_args(self):
+        argspec = ['defarg1=value', 'defarg2=defvalue']
+        self._assert_arg_specs(self._create_handler(argspec=argspec), 0, 2,
+ ['defarg1', 'defarg2'], ['value', 'defvalue'])
+
+    def test_default_value_may_contain_equal_sign(self):
+ self._assert_arg_specs(self._create_handler(argspec=['d=foo=bar']), 0, 1,
+                                                    ['d'], ['foo=bar'])
+
+    def test_with_varargs(self):
+ self._assert_arg_specs(self._create_handler(argspec=['*vararg']), 0, + sys.maxint, vararg='vararg')
+
+    def test_integration(self):
+        handler = self._create_handler(argspec=['arg', 'default=value'])
+ self._assert_arg_specs(handler, 1, 2, ['arg', 'default'], ['value']) + handler = self._create_handler(argspec=['arg', 'default=value', '*var']) + self._assert_arg_specs(handler, 1, sys.maxint, ['arg', 'default'], ['value'], 'var')
+
+    def test_with_string_argspec(self):
+ assert_raises_with_msg(TypeError, self._type_err_msg, self._create_handler, argspec='')
+
+    def test_with_non_iterable_argspec(self):
+ assert_raises_with_msg(TypeError, self._type_err_msg, self._create_handler, argspec=True)
+
+    def test_mandatory_arg_after_default_arg(self):
+        for argspec in [['d=v', 'arg'], ['a', 'b', 'c=v', 'd']]:
+            assert_raises_with_msg(TypeError, self._type_err_msg,
+                                   self._create_handler, argspec=argspec)
+
+    def test_vararg_not_last(self):
+        for argspec in [ ['*foo', 'arg'], ['arg', '*var', 'arg'],
+                         ['a', 'b=d', '*var', 'c'], ['*var', '*vararg'] ]:
+            assert_raises_with_msg(TypeError, self._type_err_msg,
+                                   self._create_handler, argspec=argspec)
+
+    def _create_handler(self, doc=None, argspec=None):
+ return DynamicHandler(LibraryMock('TEST CASE'), 'mock', lambda x: None,
+                              doc, argspec)
+
+ def _assert_arg_specs(self, handler, minargs, maxargs, names=[], defaults=[], vararg=None):
+        assert_equals(handler.arguments.minargs, minargs)
+        assert_equals(handler.arguments.maxargs, maxargs)
+        assert_equals(handler.arguments.names, names)
+        assert_equals(handler.arguments.defaults, defaults)
+        assert_equals(handler.arguments.varargs, vararg)
+
+
+if utils.is_jython:
+
+    handlers = dict([ (method.__name__, method) for method in
+                       _get_java_handler_methods(ArgumentsJava()) ])
+
+    class TestJavaHandler(unittest.TestCase):
+
+        def test_arg_limits_no_defaults_or_varargs(self):
+            for count in [ 0, 1, 3 ]:
+                method = handlers['a_%d' % count]
+ handler = _JavaHandler(LibraryMock(), method.__name__, method)
+                assert_equals(handler.minargs, count)
+                assert_equals(handler.maxargs, count)
+
+        def test_arg_limits_with_varargs(self):
+            for count in [ 0, 1 ]:
+                method = handlers['a_%d_n' % count]
+ handler = _JavaHandler(LibraryMock(), method.__name__, method)
+                assert_equals(handler.minargs, count)
+                assert_equals(handler.maxargs, sys.maxint)
+
+        def test_arg_limits_with_defaults(self):
+            # defaults i.e. multiple signatures
+            for mina, maxa in [ (0,1), (1,3) ]:
+                method = handlers['a_%d_%d' % (mina, maxa)]
+ handler = _JavaHandler(LibraryMock(), method.__name__, method)
+                assert_equals(handler.minargs, mina)
+                assert_equals(handler.maxargs, maxa)
+
+
+    class TestArgumentCoercer(unittest.TestCase):
+
+        def setUp(self):
+            self.lib = TestLibrary('ArgTypeCoercion')
+
+        def test_coercing_to_integer(self):
+            handler = self.lib.handlers['intArgument']
+            assert_equals(handler._arg_coercer(['1']), [1])
+
+        def test_coercing_to_boolean(self):
+            handler = self.lib.handlers['booleanArgument']
+            assert_equals(handler._arg_coercer(['True']), [True])
+            assert_equals(handler._arg_coercer(['FALSE']), [ False])
+
+        def test_coercing_to_real_number(self):
+            handler = self.lib.handlers['doubleArgument']
+            assert_equals(handler._arg_coercer(['1.42']), [1.42])
+            handler = self.lib.handlers['floatArgument']
+            assert_equals(handler._arg_coercer(['-9991.098']), [-9991.098])
+
+        def test_coercion_with_compatible_types(self):
+ handler = self.lib.handlers['coercableKeywordWithCompatibleTypes'] + assert_equals(handler._arg_coercer(['9999', '-42', 'FaLsE', '31.31']),
+                                               [9999, -42, False, 31.31])
+
+        def test_arguments_that_are_not_strings_are_not_coerced(self):
+            handler = self.lib.handlers['intArgument']
+            assert_equals(handler._arg_coercer([self.lib]), [self.lib])
+            handler = self.lib.handlers['booleanArgument']
+            assert_equals(handler._arg_coercer([42]), [42])
+
+        def test_coercion_fails_with_reasonable_message(self):
+            msg = 'Argument at position 1 cannot be coerced to %s'
+            handler = self.lib.handlers['intArgument']
+ assert_raises_with_msg(DataError, msg % 'integer', handler._arg_coercer, ['invalid'])
+            handler = self.lib.handlers['booleanArgument']
+ assert_raises_with_msg(DataError, msg % 'boolean', handler._arg_coercer, ['invalid'])
+            handler = self.lib.handlers['floatArgument']
+ assert_raises_with_msg(DataError, msg % 'floating point number', handler._arg_coercer, ['invalid'])
+
+        def test_no_arg_no_coercion(self):
+            handler = self.lib.handlers['noArgument']
+            assert_equals(handler._arg_coercer([]), [])
+
+        def test_coercing_multiple_arguments(self):
+            handler = self.lib.handlers['coercableKeyword']
+            assert_equals(handler._arg_coercer(['10.0', '42', 'tRUe']),
+                          [10.0, 42, True])
+
+        def test_coercion_is_not_done_with_conflicting_signatures(self):
+            handler = self.lib.handlers['unCoercableKeyword']
+ assert_equals(handler._arg_coercer(['True', '42']), ['True', '42'])
+
+        def test_coercable_and_uncoercable_args_in_same_kw(self):
+            handler = self.lib.handlers['coercableAndUnCoercableArgs']
+ assert_equals(handler._arg_coercer(['1', 'False', '-23', '0']), ['1', False, -23, '0'])
+
+
+if __name__ == '__main__':
+    unittest.main()
=======================================
--- /trunk/utest/running/test_basehandlers.py   Thu Apr  8 07:27:06 2010
+++ /dev/null
@@ -1,241 +0,0 @@
-import unittest
-import sys
-from types import *
-
-from robot.running.handlers import _RunnableHandler, _PythonHandler, \
-        _JavaHandler, DynamicHandler
-from robot import utils
-from robot.errors import *
-from robot.utils.asserts import *
-from robot.running.testlibraries import TestLibrary
-
-from classes import NameLibrary, DocLibrary, ArgInfoLibrary
-from ArgumentsPython import ArgumentsPython
-if utils.is_jython:
-    import ArgumentsJava
-
-
-def _get_handler_methods(lib):
-    attrs = [ getattr(lib, a) for a in dir(lib) if not a.startswith('_') ]
-    return [ a for a in attrs if type(a) is MethodType ]
-
-def _get_java_handler_methods(lib):
- # This hack assumes that all java handlers used start with 'a_' -- easier
-    # than excluding 'equals' etc. otherwise
- return [ a for a in _get_handler_methods(lib) if a.__name__.startswith('a_') ]
-
-
-class LibraryMock:
-    def __init__(self, name='MyLibrary', scope='GLOBAL'):
-        self.name = name
-        self.scope = scope
-
-
-class TestPythonHandler(unittest.TestCase):
-
-    def test_name(self):
-        for method in _get_handler_methods(NameLibrary()):
- handler = _PythonHandler(LibraryMock('mylib'), method.__name__, method)
-            assert_equals(handler.name, method.__doc__)
-            assert_equals(handler.longname, 'mylib.'+method.__doc__)
-
-    def test_docs(self):
-        for method in _get_handler_methods(DocLibrary()):
- handler = _PythonHandler(LibraryMock(), method.__name__, method)
-            assert_equals(handler.doc, method.expected_doc)
-            assert_equals(handler.shortdoc, method.expected_shortdoc)
-
-    def test_get_arg_info(self):
-        for method in _get_handler_methods(ArgInfoLibrary()):
- handler = _PythonHandler(LibraryMock(), method.__name__, method)
-            expected = eval(method.__doc__)
-            assert_equals(handler.arguments._get_arg_spec(method),
-                          expected, method.__name__)
-
-    def test_arg_limits(self):
-        for method in _get_handler_methods(ArgumentsPython()):
- handler = _PythonHandler(LibraryMock(), method.__name__, method)
-            exp_mina, exp_maxa = eval(method.__doc__)
-            assert_equals(handler.arguments.minargs, exp_mina)
-            assert_equals(handler.arguments.maxargs, exp_maxa)
-
-    def test_getarginfo_getattr(self):
-        testlib = TestLibrary('classes.GetattrLibrary')
-        handlers = testlib.handlers.values()
-        assert_equals(len(handlers), 3)
-        for handler in handlers:
-            assert_true(handler.name in ['Foo','Bar','Zap'])
-            assert_equals(handler.minargs, 0)
-            assert_equals(handler.maxargs, sys.maxint)
-
-
-class TestDynamicHandlerCreation(unittest.TestCase):
-
- _type_err_msg = 'Argument specification should be list/array of Strings.'
-
-    def test_with_none_doc(self):
-        assert_equals(self._create_handler().doc, '')
-
-    def test_with_empty_doc(self):
-         assert_equals(self._create_handler('').doc, '')
-
-    def test_with_non_empty_doc(self):
-        doc = 'This is some documentation'
-        assert_equals(self._create_handler(doc).doc, doc)
-
-    def test_with_non_string_doc(self):
-        doc = ['this', 'is', 'doc']
-        assert_equals(self._create_handler(doc).doc, str(doc))
-        doc = lambda x: None
-        assert_equals(self._create_handler(doc).doc, str(doc))
-
-    def test_with_none_argspec(self):
-        self._assert_arg_specs(self._create_handler(), 0, sys.maxint,
-                               vararg='<unknown>')
-
-    def test_with_empty_argspec(self):
-        self._assert_arg_specs(self._create_handler(argspec=[]), 0, 0)
-
-    def test_with_mandatory_args(self):
-        for args in [ ['arg'], ['arg1', 'arg2', 'arg3'] ]:
-            handler = self._create_handler(argspec=args)
-            self._assert_arg_specs(handler, len(args), len(args), args)
-
-    def test_with_only_default_args(self):
-        argspec = ['defarg1=value', 'defarg2=defvalue']
-        self._assert_arg_specs(self._create_handler(argspec=argspec), 0, 2,
- ['defarg1', 'defarg2'], ['value', 'defvalue'])
-
-    def test_default_value_may_contain_equal_sign(self):
- self._assert_arg_specs(self._create_handler(argspec=['d=foo=bar']), 0, 1,
-                                                    ['d'], ['foo=bar'])
-
-    def test_with_varargs(self):
- self._assert_arg_specs(self._create_handler(argspec=['*vararg']), 0, - sys.maxint, vararg='vararg')
-
-    def test_integration(self):
-        handler = self._create_handler(argspec=['arg', 'default=value'])
- self._assert_arg_specs(handler, 1, 2, ['arg', 'default'], ['value']) - handler = self._create_handler(argspec=['arg', 'default=value', '*var']) - self._assert_arg_specs(handler, 1, sys.maxint, ['arg', 'default'], ['value'], 'var')
-
-    def test_with_string_argspec(self):
- assert_raises_with_msg(TypeError, self._type_err_msg, self._create_handler, argspec='')
-
-    def test_with_non_iterable_argspec(self):
- assert_raises_with_msg(TypeError, self._type_err_msg, self._create_handler, argspec=True)
-
-    def test_mandatory_arg_after_default_arg(self):
-        for argspec in [['d=v', 'arg'], ['a', 'b', 'c=v', 'd']]:
-            assert_raises_with_msg(TypeError, self._type_err_msg,
-                                   self._create_handler, argspec=argspec)
-
-    def test_vararg_not_last(self):
-        for argspec in [ ['*foo', 'arg'], ['arg', '*var', 'arg'],
-                         ['a', 'b=d', '*var', 'c'], ['*var', '*vararg'] ]:
-            assert_raises_with_msg(TypeError, self._type_err_msg,
-                                   self._create_handler, argspec=argspec)
-
-    def _create_handler(self, doc=None, argspec=None):
- return DynamicHandler(LibraryMock('TEST CASE'), 'mock', lambda x: None,
-                              doc, argspec)
-
- def _assert_arg_specs(self, handler, minargs, maxargs, names=[], defaults=[], vararg=None):
-        assert_equals(handler.arguments.minargs, minargs)
-        assert_equals(handler.arguments.maxargs, maxargs)
-        assert_equals(handler.arguments.names, names)
-        assert_equals(handler.arguments.defaults, defaults)
-        assert_equals(handler.arguments.varargs, vararg)
-
-
-if utils.is_jython:
-
-    handlers = dict([ (method.__name__, method) for method in
-                       _get_java_handler_methods(ArgumentsJava()) ])
-
-    class TestJavaHandler(unittest.TestCase):
-
-        def test_arg_limits_no_defaults_or_varargs(self):
-            for count in [ 0, 1, 3 ]:
-                method = handlers['a_%d' % count]
- handler = _JavaHandler(LibraryMock(), method.__name__, method)
-                assert_equals(handler.minargs, count)
-                assert_equals(handler.maxargs, count)
-
-        def test_arg_limits_with_varargs(self):
-            for count in [ 0, 1 ]:
-                method = handlers['a_%d_n' % count]
- handler = _JavaHandler(LibraryMock(), method.__name__, method)
-                assert_equals(handler.minargs, count)
-                assert_equals(handler.maxargs, sys.maxint)
-
-        def test_arg_limits_with_defaults(self):
-            # defaults i.e. multiple signatures
-            for mina, maxa in [ (0,1), (1,3) ]:
-                method = handlers['a_%d_%d' % (mina, maxa)]
- handler = _JavaHandler(LibraryMock(), method.__name__, method)
-                assert_equals(handler.minargs, mina)
-                assert_equals(handler.maxargs, maxa)
-
-
-    class TestArgumentCoercer(unittest.TestCase):
-
-        def setUp(self):
-            self.lib = TestLibrary('ArgTypeCoercion')
-
-        def test_coercing_to_integer(self):
-            handler = self.lib.handlers['intArgument']
-            assert_equals(handler._arg_coercer(['1']), [1])
-
-        def test_coercing_to_boolean(self):
-            handler = self.lib.handlers['booleanArgument']
-            assert_equals(handler._arg_coercer(['True']), [True])
-            assert_equals(handler._arg_coercer(['FALSE']), [ False])
-
-        def test_coercing_to_real_number(self):
-            handler = self.lib.handlers['doubleArgument']
-            assert_equals(handler._arg_coercer(['1.42']), [1.42])
-            handler = self.lib.handlers['floatArgument']
-            assert_equals(handler._arg_coercer(['-9991.098']), [-9991.098])
-
-        def test_coercion_with_compatible_types(self):
- handler = self.lib.handlers['coercableKeywordWithCompatibleTypes'] - assert_equals(handler._arg_coercer(['9999', '-42', 'FaLsE', '31.31']),
-                                               [9999, -42, False, 31.31])
-
-        def test_arguments_that_are_not_strings_are_not_coerced(self):
-            handler = self.lib.handlers['intArgument']
-            assert_equals(handler._arg_coercer([self.lib]), [self.lib])
-            handler = self.lib.handlers['booleanArgument']
-            assert_equals(handler._arg_coercer([42]), [42])
-
-        def test_coercion_fails_with_reasonable_message(self):
-            msg = 'Argument at position 1 cannot be coerced to %s'
-            handler = self.lib.handlers['intArgument']
- assert_raises_with_msg(DataError, msg % 'integer', handler._arg_coercer, ['invalid'])
-            handler = self.lib.handlers['booleanArgument']
- assert_raises_with_msg(DataError, msg % 'boolean', handler._arg_coercer, ['invalid'])
-            handler = self.lib.handlers['floatArgument']
- assert_raises_with_msg(DataError, msg % 'floating point number', handler._arg_coercer, ['invalid'])
-
-        def test_no_arg_no_coercion(self):
-            handler = self.lib.handlers['noArgument']
-            assert_equals(handler._arg_coercer([]), [])
-
-        def test_coercing_multiple_arguments(self):
-            handler = self.lib.handlers['coercableKeyword']
-            assert_equals(handler._arg_coercer(['10.0', '42', 'tRUe']),
-                          [10.0, 42, True])
-
-        def test_coercion_is_not_done_with_conflicting_signatures(self):
-            handler = self.lib.handlers['unCoercableKeyword']
- assert_equals(handler._arg_coercer(['True', '42']), ['True', '42'])
-
-        def test_coercable_and_uncoercable_args_in_same_kw(self):
-            handler = self.lib.handlers['coercableAndUnCoercableArgs']
- assert_equals(handler._arg_coercer(['1', 'False', '-23', '0']), ['1', False, -23, '0'])
-
-
-if __name__ == '__main__':
-    unittest.main()
=======================================
--- /trunk/utest/running/test_userhandlers.py   Thu Apr  8 07:27:06 2010
+++ /trunk/utest/running/test_userhandlers.py   Thu Apr  8 21:11:34 2010
@@ -6,7 +6,7 @@


 class HandlerDataMock:
-
+
     def __init__(self, name, args=[]):
         self.name = name
         self.args = args
@@ -17,12 +17,11 @@
         self.minargs = 0
         self.maxargs = 0
         self.return_value = None
-
-
+
 def EAT(*args):
     return EmbeddedArgsTemplate(HandlerDataMock(*args), 'resource')

-
+
 class TestEmbeddedArgs(unittest.TestCase):

     def setUp(self):
@@ -31,10 +30,10 @@

     def test_keyword_has_normal_arguments(self):
         assert_raises(TypeError, EAT, 'Name has ${args}', ['${norm arg}'])
-
+
     def test_no_embedded_args(self):
         assert_raises(TypeError, EAT, 'No embedded args here')
-
+
     def test_get_embedded_arg_and_regexp(self):
         assert_equals(self.tmp1.embedded_args, ['${item}'])
         assert_equals(self.tmp1.name_regexp.pattern,
@@ -49,7 +48,7 @@

     def test_create_handler_when_no_match(self):
         assert_raises(TypeError, EmbeddedArgs, 'Not matching', self.tmp1)
-
+
     def test_create_handler_with_one_embedded_arg(self):
         handler = EmbeddedArgs('User selects book from list', self.tmp1)
         assert_equals(handler.embedded_args, [('${item}', 'book')])
@@ -59,7 +58,7 @@
         assert_equals(handler.embedded_args, [('${item}', 'radio')])
         assert_equals(handler.name, 'User selects radio from list')
assert_equals(handler.longname, 'resource.User selects radio from list')
-
+
     def test_create_handler_with_many_embedded_args(self):
         handler = EmbeddedArgs('User * book from "list"', self.tmp2)
         assert_equals(handler.embedded_args,


--
To unsubscribe, reply using "remove me" as the subject.

Reply via email to