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.


Reply via email to