Revision: b05aab9b4296
Branch: default
Author: Robot Framework Developers ([email protected])
Date: Tue May 7 01:15:24 2013
Log: Added named args to error when initializing libraries fails. Also
cleaned up the error message and related tests in general.
http://code.google.com/p/robotframework/source/detail?r=b05aab9b4296
Modified:
/atest/robot/test_libraries/invalid_java_libraries.txt
/atest/robot/test_libraries/library_import_failing.txt
/atest/testdata/test_libraries/InitializationFailLibrary.py
/atest/testdata/test_libraries/library_import_failing.txt
/src/robot/running/testlibraries.py
=======================================
--- /atest/robot/test_libraries/invalid_java_libraries.txt Mon Apr 15
03:56:19 2013
+++ /atest/robot/test_libraries/invalid_java_libraries.txt Tue May 7
01:15:24 2013
@@ -27,7 +27,7 @@
Init Error
[Arguments] ${index} ${name}
Verify Error ${index}
- ... Creating an instance of the test library '${name}' with no
arguments failed: TypeError: *
+ ... Initializing test library '${name}' with no arguments failed:
TypeError: *
Limit Error
[Arguments] ${index} ${name} ${arg count}
=======================================
--- /atest/robot/test_libraries/library_import_failing.txt Thu May 19
13:13:43 2011
+++ /atest/robot/test_libraries/library_import_failing.txt Tue May 7
01:15:24 2013
@@ -6,21 +6,37 @@
Resource atest_resource.txt
*** Test Cases ***
-Library Import Fails Because Not a Library
- ${path} = Normalize Path
${CURDIR}/../../testdata/test_libraries/MyInvalidLibFile.py
- Check Failure From Output 0 Importing test library '${path}' failed:
ImportError: I'm not really a library! raise ImportError("I'm not really a
library!")
+Not a Library
+ ${path} = Normalize Path
${DATADIR}/test_libraries/MyInvalidLibFile.py
+ Import Should Have Failed 0
+ ... Importing test library '${path}' failed: ImportError: I'm not
really a library!
+ ... raise ImportError("I'm not really a library!")
-Library Import Fails Because Initialization Fails
- Check Failure From Output 2 Creating an instance of the test
library 'InitializationFailLibrary' with no arguments failed:
Initialization failed! InitializationFailLibrary.py", line 4, in __init__
+Initializing Fails Without Arguments
+ Import Should Have Failed 1
+ ... Initializing test library 'InitializationFailLibrary' with no
arguments failed: Initialization failed with arguments 'default 1'
and 'default 2'!
+ ... InitializationFailLibrary.py", line 5, in __init__
-Library Import Failing In Java
+Initializing Fails With Arguments
+ Import Should Have Failed 2
+ ... Initializing test library 'InitializationFailLibrary' with
arguments [ 1 | arg2=2 ] failed: Initialization failed with arguments 1 and
2!
+ ... InitializationFailLibrary.py", line 5, in __init__
+
+Initializing Fails Due To Too Many Arguments
+ Import Should Have Failed 3
+ ... Test Library 'InitializationFailLibrary' expected 0 to 2
arguments, got 3.
+
+Initializing Java Library Fails
[Tags] jybot
- Check Failure From Output 1 Creating an instance of the test
library 'InitializationFailJavaLibrary' with no arguments failed:
Initialization failed! at
InitializationFailJavaLibrary.<init>(InitializationFailJavaLibrary.java:4)
+ Import Should Have Failed 4
+ ... Initializing test library 'InitializationFailJavaLibrary' with no
arguments failed: Initialization failed!
+ ... at
InitializationFailJavaLibrary.<init>(InitializationFailJavaLibrary.java:4)
*** Keywords ***
-Check Failure From Output
+Import Should Have Failed
[Arguments] ${index} ${expected message} ${expected traceback}=
${message} = Set Variable ${ERRORS.msgs[${index}].message}
- Should Contain ${message} ${expected message}
+ ${path} = Normalize Path
${DATADIR}/test_libraries/library_import_failing.txt
+ Should Start With ${message} Error in file '${path}' in
table 'Settings': ${expected message}
Should Contain ${message} ${expected traceback}
=======================================
--- /atest/testdata/test_libraries/InitializationFailLibrary.py Sat May 31
09:57:24 2008
+++ /atest/testdata/test_libraries/InitializationFailLibrary.py Tue May 7
01:15:24 2013
@@ -1,4 +1,5 @@
class InitializationFailLibrary:
- def __init__(self):
- raise Exception("Initialization failed!")
+ def __init__(self, arg1='default 1', arg2='default 2'):
+ raise Exception("Initialization failed with arguments %r and %r!"
+ % (arg1, arg2))
=======================================
--- /atest/testdata/test_libraries/library_import_failing.txt Thu May 19
12:38:24 2011
+++ /atest/testdata/test_libraries/library_import_failing.txt Tue May 7
01:15:24 2013
@@ -1,7 +1,9 @@
*** Settings ***
Library MyInvalidLibFile.py
-Library InitializationFailJavaLibrary.java
Library InitializationFailLibrary.py
+Library InitializationFailLibrary.py ${1} arg2=${2}
+Library InitializationFailLibrary.py too many values
+Library InitializationFailJavaLibrary.java
*** Test Cases ***
Test
=======================================
--- /src/robot/running/testlibraries.py Mon May 6 06:51:17 2013
+++ /src/robot/running/testlibraries.py Tue May 7 01:15:24 2013
@@ -207,14 +207,14 @@
def _raise_creating_instance_failed(self):
msg, details = utils.get_error_details()
- # FIXME: Error doesn't contain named args
- if self.positional_args:
- args = "argument%s %s" %
(utils.plural_or_not(self.positional_args),
- utils.seq2str(self.positional_args))
+ if self.positional_args or self.named_args:
+ args = self.positional_args \
+ + ['%s=%s' % item for item in self.named_args.items()]
+ args_text = 'arguments %s' % utils.seq2str2(args)
else:
- args = "no arguments"
- raise DataError("Creating an instance of the test library '%s'
with %s "
- "failed: %s\n%s" % (self.name, args, msg, details))
+ args_text = 'no arguments'
+ raise DataError("Initializing test library '%s' with %s
failed: %s\n%s"
+ % (self.name, args_text, msg, details))
class _ClassLibrary(_BaseTestLibrary):
--
---
You received this message because you are subscribed to the Google Groups "robotframework-commit" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.