summaryrefslogtreecommitdiff
path: root/python/subunit
diff options
context:
space:
mode:
authorThomi Richards <thomi.richards@canonical.com>2013-11-25 11:57:44 +1300
committerThomi Richards <thomi.richards@canonical.com>2013-11-25 11:57:44 +1300
commit017c91bebbb48101b3bbaafaddf6518295b060f5 (patch)
treedb6015e540a9e77dc345f37814176828e4dcfade /python/subunit
parentdd89c81df541ba7a43303e225b0c7c3fd4ccb756 (diff)
parent88e4f3f2697b7dc5782cbb7dacbd0d7e532b6644 (diff)
downloadsubunit-git-017c91bebbb48101b3bbaafaddf6518295b060f5.tar.gz
Merge trunk.
Diffstat (limited to 'python/subunit')
-rw-r--r--python/subunit/__init__.py7
-rw-r--r--python/subunit/tests/__init__.py15
-rw-r--r--python/subunit/tests/test_test_protocol.py26
3 files changed, 30 insertions, 18 deletions
diff --git a/python/subunit/__init__.py b/python/subunit/__init__.py
index a259880..b385e9b 100644
--- a/python/subunit/__init__.py
+++ b/python/subunit/__init__.py
@@ -133,13 +133,6 @@ from testtools.compat import _b, _u, BytesIO, StringIO
try:
from testtools.testresult.real import _StringException
RemoteException = _StringException
- # For testing: different pythons have different str() implementations.
- if sys.version_info > (3, 0):
- _remote_exception_str = "testtools.testresult.real._StringException"
- _remote_exception_str_chunked = "34\r\n" + _remote_exception_str
- else:
- _remote_exception_str = "_StringException"
- _remote_exception_str_chunked = "1A\r\n" + _remote_exception_str
except ImportError:
raise ImportError ("testtools.testresult.real does not contain "
"_StringException, check your version.")
diff --git a/python/subunit/tests/__init__.py b/python/subunit/tests/__init__.py
index c9cc7ae..b5a7fdc 100644
--- a/python/subunit/tests/__init__.py
+++ b/python/subunit/tests/__init__.py
@@ -14,8 +14,22 @@
# limitations under that license.
#
+import sys
from unittest import TestLoader
+
+# Before the test module imports to avoid circularity.
+# For testing: different pythons have different str() implementations.
+if sys.version_info > (3, 0):
+ _remote_exception_repr = "testtools.testresult.real._StringException"
+ _remote_exception_str = "Traceback (most recent call last):\ntesttools.testresult.real._StringException"
+ _remote_exception_str_chunked = "57\r\n" + _remote_exception_str + ": boo qux\n0\r\n"
+else:
+ _remote_exception_repr = "_StringException"
+ _remote_exception_str = "Traceback (most recent call last):\n_StringException"
+ _remote_exception_str_chunked = "3D\r\n" + _remote_exception_str + ": boo qux\n0\r\n"
+
+
from subunit.tests import (
test_chunked,
test_details,
@@ -32,6 +46,7 @@ from subunit.tests import (
test_test_results,
)
+
def test_suite():
loader = TestLoader()
result = loader.loadTestsFromModule(test_chunked)
diff --git a/python/subunit/tests/test_test_protocol.py b/python/subunit/tests/test_test_protocol.py
index 4fa66ab..c6008f4 100644
--- a/python/subunit/tests/test_test_protocol.py
+++ b/python/subunit/tests/test_test_protocol.py
@@ -37,7 +37,11 @@ except ImportError:
from testtools.matchers import Contains
import subunit
-from subunit import _remote_exception_str, _remote_exception_str_chunked
+from subunit.tests import (
+ _remote_exception_repr,
+ _remote_exception_str,
+ _remote_exception_str_chunked,
+ )
import subunit.iso8601 as iso8601
@@ -105,10 +109,10 @@ class TestTestProtocolServerPipe(unittest.TestCase):
bing = subunit.RemotedTestCase("bing crosby")
an_error = subunit.RemotedTestCase("an error")
self.assertEqual(client.errors,
- [(an_error, _remote_exception_str + '\n')])
+ [(an_error, _remote_exception_repr + '\n')])
self.assertEqual(
client.failures,
- [(bing, _remote_exception_str + ": "
+ [(bing, _remote_exception_repr + ": "
+ details_to_str({'traceback': text_content(traceback)}) + "\n")])
self.assertEqual(client.testsRun, 3)
@@ -963,7 +967,7 @@ class TestRemotedTestCase(unittest.TestCase):
"'A test description'>", "%r" % test)
result = unittest.TestResult()
test.run(result)
- self.assertEqual([(test, _remote_exception_str + ": "
+ self.assertEqual([(test, _remote_exception_repr + ": "
"Cannot run RemotedTestCases.\n\n")],
result.errors)
self.assertEqual(1, result.testsRun)
@@ -1199,15 +1203,15 @@ class TestTestProtocolClient(TestCase):
"something\n"
"F\r\nserialised\nform0\r\n"
"Content-Type: text/x-traceback;charset=utf8,language=python\n"
- "traceback\n" + _remote_exception_str_chunked + ": boo qux\n0\r\n"
+ "traceback\n" + _remote_exception_str_chunked +
"]\n") % self.test.id()),
_b(("failure: %s [ multipart\n"
"Content-Type: text/plain\n"
"something\n"
"F\r\nserialised\nform0\r\n"
"Content-Type: text/x-traceback;language=python,charset=utf8\n"
- "traceback\n" + _remote_exception_str_chunked + ": boo qux\n0\r\n"
- "]\n") % self.test.id())
+ "traceback\n" + _remote_exception_str_chunked +
+ "]\n") % self.test.id()),
],
Contains(self.io.getvalue())),
@@ -1231,14 +1235,14 @@ class TestTestProtocolClient(TestCase):
"something\n"
"F\r\nserialised\nform0\r\n"
"Content-Type: text/x-traceback;charset=utf8,language=python\n"
- "traceback\n" + _remote_exception_str_chunked + ": boo qux\n0\r\n"
+ "traceback\n" + _remote_exception_str_chunked +
"]\n") % self.test.id()),
_b(("error: %s [ multipart\n"
"Content-Type: text/plain\n"
"something\n"
"F\r\nserialised\nform0\r\n"
"Content-Type: text/x-traceback;language=python,charset=utf8\n"
- "traceback\n" + _remote_exception_str_chunked + ": boo qux\n0\r\n"
+ "traceback\n" + _remote_exception_str_chunked +
"]\n") % self.test.id()),
],
Contains(self.io.getvalue())),
@@ -1263,14 +1267,14 @@ class TestTestProtocolClient(TestCase):
"something\n"
"F\r\nserialised\nform0\r\n"
"Content-Type: text/x-traceback;charset=utf8,language=python\n"
- "traceback\n" + _remote_exception_str_chunked + ": boo qux\n0\r\n"
+ "traceback\n" + _remote_exception_str_chunked +
"]\n") % self.test.id()),
_b(("xfail: %s [ multipart\n"
"Content-Type: text/plain\n"
"something\n"
"F\r\nserialised\nform0\r\n"
"Content-Type: text/x-traceback;language=python,charset=utf8\n"
- "traceback\n" + _remote_exception_str_chunked + ": boo qux\n0\r\n"
+ "traceback\n" + _remote_exception_str_chunked +
"]\n") % self.test.id()),
],
Contains(self.io.getvalue())),