Author: janne.t.harkonen
Date: Tue Nov 25 06:27:33 2008
New Revision: 1105
Modified:
trunk/atest/testresources/testlibs/classes.py
trunk/utest/running/test_basehandlers.py
trunk/utest/running/test_testlibrary.py
Log:
fixed unit tests after recent testlibrary and handler refactoring
Modified: trunk/atest/testresources/testlibs/classes.py
==============================================================================
--- trunk/atest/testresources/testlibs/classes.py (original)
+++ trunk/atest/testresources/testlibs/classes.py Tue Nov 25 06:27:33 2008
@@ -141,7 +141,6 @@
def get_keyword_arguments(self, name):
return self._keywords[name].argspec
-
class _KeywordInfo:
doc_template = 'Keyword documentation for %s'
def __init__(self, name, argspec):
@@ -149,12 +148,14 @@
self.argspec = argspec
-class InvalidSignatureArgDocDynamicLibrary(ArgDocDynamicLibrary):
+class InvalidGetDocDynamicLibrary(ArgDocDynamicLibrary):
def get_keyword_documentation(self, name, invalid_arg):
pass
- def get_keyword_arguments(self, name, invalidarg):
- pass
-class InvalidAttributeArgDocDynamicLibrary(ArgDocDynamicLibrary):
+class InvalidGetArgsDynamicLibrary(ArgDocDynamicLibrary):
+ def get_keyword_arguments(self, name):
+ return 1/0
+
+class InvalidAttributeDynamicLibrary(ArgDocDynamicLibrary):
get_keyword_documentation = True
get_keyword_arguments = False
Modified: trunk/utest/running/test_basehandlers.py
==============================================================================
--- trunk/utest/running/test_basehandlers.py (original)
+++ trunk/utest/running/test_basehandlers.py Tue Nov 25 06:27:33 2008
@@ -1,16 +1,15 @@
import unittest
-import unittest, sys
+import sys
from types import *
-from robot.running.handlers import _RunnableHandler, PythonHandler,
JavaHandler, \
- DynamicHandler
+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 BuiltIn import BuiltIn
-from classes import NameLibrary, DocLibrary, ArgInfoLibrary, GetattrLibrary
+from classes import NameLibrary, DocLibrary, ArgInfoLibrary
from ArgumentsPython import ArgumentsPython
if utils.is_jython:
import ArgumentsJava
@@ -45,19 +44,19 @@
def test_docs(self):
for method in _get_handler_methods(DocLibrary()):
- handler = PythonHandler(LibraryMock(), method.__name__, method)
+ 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)
+ handler = _PythonHandler(LibraryMock(), method.__name__,
method)
expected = eval(method.__doc__)
assert_equals(handler._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)
+ handler = _PythonHandler(LibraryMock(), method.__name__,
method)
exp_mina, exp_maxa = eval(method.__doc__)
assert_equals(handler.minargs, exp_mina)
assert_equals(handler.maxargs, exp_maxa)
@@ -162,14 +161,14 @@
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)
+ 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)
+ handler = _JavaHandler(LibraryMock(), method.__name__,
method)
assert_equals(handler.minargs, count)
assert_equals(handler.maxargs, sys.maxint)
@@ -177,7 +176,7 @@
# 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)
+ handler = _JavaHandler(LibraryMock(), method.__name__,
method)
assert_equals(handler.minargs, mina)
assert_equals(handler.maxargs, maxa)
Modified: trunk/utest/running/test_testlibrary.py
==============================================================================
--- trunk/utest/running/test_testlibrary.py (original)
+++ trunk/utest/running/test_testlibrary.py Tue Nov 25 06:27:33 2008
@@ -1,8 +1,8 @@
import unittest
import sys
-from robot.running.testlibraries import PythonLibrary, ModuleLibrary, \
- TestLibrary, DynamicLibrary, JavaLibrary
+from robot.running.testlibraries import TestLibrary, _ClassLibrary, \
+ _ModuleLibrary, _DynamicLibrary
from robot.utils.asserts import *
from robot import utils
from robot.errors import DataError
@@ -10,8 +10,7 @@
from classes import NameLibrary, DocLibrary, ArgInfoLibrary,
GetattrLibrary, \
SynonymLibrary
if utils.is_jython:
- import ArgumentTypes, Extended, MultipleArguments, MultipleSignatures,
\
- NoHandlers, ReturnTypes, ArgDocDynamicJavaLibrary
+ import ArgumentTypes, Extended, MultipleArguments, MultipleSignatures,
NoHandlers
# Valid keyword names and arguments for some libraries
@@ -33,29 +32,29 @@
def test_python_library(self):
lib = TestLibrary("BuiltIn")
- assert_equals(lib.__class__, PythonLibrary)
+ assert_equals(lib.__class__, _ClassLibrary)
assert_equals(lib.args, [])
def test_python_library_with_args(self):
lib = TestLibrary("ParameterLibrary", ['my_host', '8080'])
- assert_equals(lib.__class__, PythonLibrary)
+ assert_equals(lib.__class__, _ClassLibrary)
assert_equals(lib.args, ['my_host', '8080'])
def test_module_library(self):
lib = TestLibrary("module_library")
- assert_equals(lib.__class__, ModuleLibrary)
+ assert_equals(lib.__class__, _ModuleLibrary)
def test_module_library_with_args(self):
assert_raises(DataError, TestLibrary, "module_library", ['arg'] )
def test_dynamic_python_library(self):
lib = TestLibrary("RunKeywordLibrary")
- assert_equals(lib.__class__, DynamicLibrary)
+ assert_equals(lib.__class__, _DynamicLibrary)
if utils.is_jython:
def test_java_library(self):
lib = TestLibrary("ExampleJavaLibrary")
- assert_equals(lib.__class__, JavaLibrary)
+ assert_equals(lib.__class__, _ClassLibrary)
class TestImports(unittest.TestCase):
@@ -373,23 +372,32 @@
class TestDynamicLibrary(unittest.TestCase):
- def test_get_keyword_documentation_is_used_if_present(self):
+ def test_get_keyword_doc_is_used_if_present(self):
lib = TestLibrary('classes.ArgDocDynamicLibrary')
assert_equals(lib.handlers['No Arg'].doc, 'Keyword documentation
for No Arg')
-
- def test_handler_is_created_if_get_keyword_doc_fails(self):
- for reason in ['Attribute', 'Signature']:
- lib = TestLibrary('classes.Invalid%sArgDocDynamicLibrary' %
reason)
- assert_equals(len(lib.handlers), 4)
-
+
+ def test_get_keyword_doc_and_args_are_ignored_if_not_callable(self):
+ lib = TestLibrary('classes.InvalidAttributeDynamicLibrary')
+ assert_equals(len(lib.handlers), 4)
+ assert_equals(lib.handlers['No Arg'].doc, '')
+ self._assert_handler_args(lib.handlers['No Arg'], 0, sys.maxint)
+
+ def test_handler_is_not_created_if_get_keyword_doc_fails(self):
+ lib = TestLibrary('classes.InvalidGetDocDynamicLibrary')
+ assert_equals(len(lib.handlers), 0)
+
+ def test_handler_is_not_created_if_get_keyword_args_fails(self):
+ lib = TestLibrary('classes.InvalidGetArgsDynamicLibrary')
+ assert_equals(len(lib.handlers), 0)
+
def test_get_keyword_arguments_is_used_if_present(self):
lib = TestLibrary('classes.ArgDocDynamicLibrary')
for name, exp in [ ('No Arg', ()) , ('One Arg', (1,1)),
('One or Two Args', (1, 2)),
('Many Args', (0, sys.maxint))]:
- self._assert_handler(lib.handlers[name], *exp)
+ self._assert_handler_args(lib.handlers[name], *exp)
- def _assert_handler(self, handler, minargs=0, maxargs=0):
+ def _assert_handler_args(self, handler, minargs=0, maxargs=0):
assert_equals(handler.minargs, minargs)
assert_equals(handler.maxargs, maxargs)
@@ -403,14 +411,18 @@
'Keyword documentation for %s' %
name,
min, max)
- def test_handler_is_created_if_arg_or_doc_retrieval_fails(self):
- for reason in ['Attribute', 'Signature']:
- lib = TestLibrary('Invalid%sArgDocDynamicJavaLibrary' %
reason)
- assert_equals(len(lib.handlers), 1)
-
+ def
test_get_keyword_doc_and_args_are_ignored_if_not_callable_in_java(self):
+ lib = TestLibrary('InvalidAttributeArgDocDynamicJavaLibrary')
+ assert_equals(len(lib.handlers), 1)
+ self._assert_handler_args(lib.handlers['keyword'], 0,
sys.maxint)
+
+ def
test_handler_is_not_created_if_get_keyword_doc_fails_in_java(self):
+ lib = TestLibrary('InvalidSignatureArgDocDynamicJavaLibrary')
+ assert_equals(len(lib.handlers), 0)
+
def _assert_java_handler(self, handler, doc, minargs, maxargs):
assert_equals(handler.doc, doc)
- self._assert_handler(handler, minargs, maxargs)
+ self._assert_handler_args(handler, minargs, maxargs)
class _FakeNamespace: