Running tox locally I see the following:
$ tox -v -v -epy34
<snip>
{0} ironic.tests.unit.api.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.044698s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
{4} ironic.tests.unit.api.v1.test_nodes.TestListNodes.test_get_nodes_by_provision_state_not_allowed [] ... inprogress
{5} ironic.tests.unit.api.v1.test_nodes.TestPatch.test_add_chassis_id [] ... inprogress
{2} ironic.tests.unit.api.v1.test_nodes.TestListNodes.test_get_boot_device [] ... inprogress
{3} ironic.tests.unit.api.v1.test_nodes.TestPut.test_power_change_when_being_cleaned [] ... inprogress
{11} ironic.tests.unit.api.test_base.TestBase.test_api_setup [] ... inprogress
{9} ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header [] ... inprogress
{6} ironic.tests.unit.api.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [] ... inprogress
{8} ironic.tests.unit.api.v1.test_drivers.TestDriverProperties.test_driver_properties_fake [] ... inprogress
{10} ironic.tests.unit.api.test_acl.TestACL.test_authenticated [] ... inprogress
{1} ironic.tests.unit.api.v1.test_nodes.TestListNodes.test_sort_key_invalid [] ... inprogress
{7} ironic.tests.unit.api.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [] ... inprogress
Traceback (most recent call last):
File "/home/john/openstack/ironic/.tox/py34/bin/subunit-trace", line 11, in <module>
sys.exit(main())
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/os_testr/subunit_trace.py", line 324, in main
stream.run(result)
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/subunit/v2.py", line 275, in run
self._parse_packet(result)
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/subunit/v2.py", line 344, in _parse_packet
self._parse(packet, result)
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/subunit/v2.py", line 471, in _parse
route_code=route_code, timestamp=timestamp)
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/testtools/testresult/real.py", line 516, in status
target.status(**kwargs)
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/testtools/testresult/real.py", line 415, in status
domap(methodcaller('status', *args, **kwargs), self.targets)
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/testtools/testresult/real.py", line 390, in domap
return list(map(*args, **kwargs))
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/testtools/testresult/real.py", line 655, in status
self.on_test(self._inprogress.pop(key))
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/os_testr/subunit_trace.py", line 186, in show_outcome
print_attachments(stream, test)
File "/home/john/openstack/ironic/.tox/py34/lib/python3.4/site-packages/os_testr/subunit_trace.py", line 123, in print_attachments
stream.write(" %s\n" % line)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 39-41: ordinal not in range(128)
Slowest Tests:
[Errno 32] Broken pipe
Test id Runtime (s)
----------------------------------------------------------------------------------------- -----------
ironic.tests.unit.api.test_acl.TestACL.test_authenticated 0.374
ironic.tests.unit.api.v1.test_chassis.TestListChassis.test_empty 0.350
ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header 0.339
ironic.tests.unit.api.test_acl.TestACL.test_non_admin 0.224
ironic.tests.unit.api.test_base.TestVersion.test_parse_headers_ok 0.220
ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback 0.205
ironic.tests.unit.api.test_base.TestVersion.test_lessthan 0.202
ironic.tests.unit.api.test_base.TestBase.test_api_setup 0.188
ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin 0.187
ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed 0.185
ERROR: InvocationError: '/home/john/openstack/ironic/.tox/py34/bin/ostestr'
py34 finish: runtests after 8.52 seconds
_____________________________________________________________________________________________________ summary _____________________________________________________________________________________________________
ERROR: py34: commands failed
This seems to be related to LANG=C in my environment.
When I did: LANG=en_US.UTF-8
It worked.
Now why does it break with LANG=C?