Revision: 2533
Author: janne.t.harkonen
Date: Thu Feb 25 00:30:22 2010
Log: Test and fix for user keyword error message when invalid argument name
contains unicode
http://code.google.com/p/robotframework/source/detail?r=2533
Modified:
/trunk/src/robot/parsing/userkeyword.py
/trunk/utest/parsing/test_userkeyword.py
=======================================
--- /trunk/src/robot/parsing/userkeyword.py Sun Apr 19 13:26:54 2009
+++ /trunk/src/robot/parsing/userkeyword.py Thu Feb 25 00:30:22 2010
@@ -30,8 +30,9 @@
try:
handler = UserHandler(data)
except DataError, err:
- _report_creating_failed(data, str(err))
- handler = UserErrorHandler(data.name, str(err))
+ msg = utils.unic(err)
+ _report_creating_failed(data, msg)
+ handler = UserErrorHandler(data.name, msg)
handler = _check_for_duplicates(handlers, handler, data)
handlers.append(handler)
return handlers
=======================================
--- /trunk/utest/parsing/test_userkeyword.py Thu Feb 25 00:00:28 2010
+++ /trunk/utest/parsing/test_userkeyword.py Thu Feb 25 00:30:22 2010
@@ -1,7 +1,7 @@
-import unittest, sys
+import unittest
from types import *
-from robot.parsing.userkeyword import UserHandler
+from robot.parsing.userkeyword import UserHandler, UserHandlerList,
UserErrorHandler
from robot.errors import *
from robot.utils.asserts import *
@@ -11,11 +11,28 @@
self.name = name
class KwDataMock:
- def __init__(self, name='My Keyword'):
+ def __init__(self, name='My Keyword', metadata=None):
self.name = name
- self.metadata = None
+ self.metadata = metadata
self.keywords = []
+ def report_invalid_syntax(self, msg):
+ self.error = msg
+
+class MetaMock:
+ def __init__(self, name, value):
+ self.name = name
+ self.value = value
+
+
+class TestUserHandlerList(unittest.TestCase):
+
+ def test_invalid_argument_contains_unicode(self):
+ mock = KwDataMock(metadata=[MetaMock('arguments', [u'\xe4'])])
+ handler = UserHandlerList([mock])[0]
+ assert_true(isinstance(handler, UserErrorHandler))
+ assert_equals(handler._error, u"Invalid argument '\xe4'")
+
class TestUserHandler(unittest.TestCase):