Revision: 2887
Author: janne.t.harkonen
Date: Thu Apr  8 21:34:31 2010
Log: Fixed and cleaned up unit tests

http://code.google.com/p/robotframework/source/detail?r=2887

Modified:
 /trunk/utest/running/test_handlers.py

=======================================
--- /trunk/utest/running/test_handlers.py       Thu Apr  8 21:11:34 2010
+++ /trunk/utest/running/test_handlers.py       Thu Apr  8 21:34:31 2010
@@ -185,56 +185,64 @@
             self.lib = TestLibrary('ArgTypeCoercion')

         def test_coercing_to_integer(self):
-            handler = self.lib.handlers['intArgument']
-            assert_equals(handler._arg_coercer(['1']), [1])
+            self._test_coercion(self._handler_named('intArgument'),
+                                ['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])
+            handler = self._handler_named('booleanArgument')
+            self._test_coercion(handler, ['True'], [True])
+            self._test_coercion(handler, ['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])
+            self._test_coercion(self._handler_named('doubleArgument'),
+                                ['1.42'], [1.42])
+            self._test_coercion(self._handler_named('floatArgument'),
+                                ['-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])
+ self._test_coercion(self._handler_named('coercableKeywordWithCompatibleTypes'),
+                                ['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])
+            self._test_coercion(self._handler_named('intArgument'),
+                                [self.lib], [self.lib])
+            self._test_coercion(self._handler_named('booleanArgument'),
+                                [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'])
+            exp_msg = 'Argument at position 1 cannot be coerced to %s'
+            self._test_coercion_fails(self._handler_named('intArgument'),
+                                      exp_msg % 'integer')
+ self._test_coercion_fails(self._handler_named('booleanArgument'),
+                                      exp_msg % 'boolean')
+            self._test_coercion_fails(self._handler_named('floatArgument'),
+                                      exp_msg % 'floating point number')

         def test_no_arg_no_coercion(self):
-            handler = self.lib.handlers['noArgument']
-            assert_equals(handler._arg_coercer([]), [])
+            self._test_coercion(self._handler_named('noArgument'), [], [])

         def test_coercing_multiple_arguments(self):
-            handler = self.lib.handlers['coercableKeyword']
-            assert_equals(handler._arg_coercer(['10.0', '42', 'tRUe']),
-                          [10.0, 42, True])
-
+            self._test_coercion(self._handler_named('coercableKeyword'),
+                                ['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'])
+            self._test_coercion(self._handler_named('unCoercableKeyword'),
+                                ['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']) + self._test_coercion(self._handler_named('coercableAndUnCoercableArgs'), + ['1', 'False', '-23', '0'], ['1', False, -23, '0'])
+
+        def _handler_named(self, name):
+            return self.lib.handlers[name]
+
+        def _test_coercion(self, handler, args, expected):
+            assert_equals(handler.arguments.coerce(args), expected)
+
+        def _test_coercion_fails(self, handler, expected_message):
+            assert_raises_with_msg(DataError, expected_message,
+                                   handler.arguments.coerce, ['invalid'])


 if __name__ == '__main__':


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

Reply via email to