diff --git a/test/basetest/compat.py b/test/basetest/compat.py new file mode 100644 index 000000000..e60cb97a3 --- /dev/null +++ b/test/basetest/compat.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- + +try: + STRING_TYPE = basestring +except NameError: + # Python 3 + STRING_TYPE = str + +# vim: ai sts=4 et sw=4 diff --git a/test/basetest/task.py b/test/basetest/task.py index c0f6d0b2e..6c7aefadd 100644 --- a/test/basetest/task.py +++ b/test/basetest/task.py @@ -10,6 +10,7 @@ import unittest from .exceptions import CommandError from .hooks import Hooks from .utils import run_cmd_wait, run_cmd_wait_nofail, which, task_binary_location +from .compat import STRING_TYPE class Task(object): @@ -163,14 +164,7 @@ class Task(object): argument. The string is literally the same as if written in the shell. """ # Enable nicer-looking calls by allowing plain strings - try: - # Python 2.x - type_check = basestring - except NameError: - # Python 3.x - type_check = str - - if isinstance(args, type_check): + if isinstance(args, STRING_TYPE): args = shlex.split(args) return args diff --git a/test/export.t b/test/export.t index 80eb84e64..7f7c3f102 100755 --- a/test/export.t +++ b/test/export.t @@ -38,6 +38,7 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__))) from basetest import Task, TestCase from basetest.utils import UUID_REGEXP +from basetest.compat import STRING_TYPE DATETIME_FORMAT = "%Y%m%dT%H%M%SZ" @@ -60,7 +61,7 @@ class TestExportCommand(TestCase): """ # Timestamps should be exported as strings - self.assertType(value, unicode) + self.assertType(value, STRING_TYPE) # And they should follow the %Y%m%dT%H%M%SZ format datetime.datetime.strptime(value, DATETIME_FORMAT) @@ -71,7 +72,7 @@ class TestExportCommand(TestCase): regular expression object. """ - self.assertType(value, unicode) + self.assertType(value, STRING_TYPE) if expected_value is not None: if regexp: @@ -192,6 +193,7 @@ class TestExportCommand(TestCase): self.t('add estimate:month test duration uda') self.assertString(self.export('2')['estimate'], 'month') + class TestExportCommandLimit(TestCase): def setUp(self): self.t = Task()