1.4.0: AttributeError: module 'subunit.iso8601' has no attribute 'Utc

Bug #1939697 reported by Tomasz Kloczko
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
subunit
Fix Released
Medium
Jelmer Vernooij

Bug Description

Fef packages requires subunit python module in test suite however when this module is installed many packages test suites fails with error mesaage from ticket subject

Here is the example of pbr python module test suite:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-testrepository-0.0.20-27.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-testrepository-0.0.20-27.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.11, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/tkloczko/rpmbuild/BUILD/testrepository-0.0.20
plugins: forked-1.3.0, shutil-1.7.0, virtualenv-1.7.0, expect-1.1.0, flake8-1.0.7, timeout-1.4.2, betamax-0.8.1, freezegun-0.4.2, case-1.5.3, aspectlib-1.5.2, toolbox-0.5, rerunfailures-9.1.1, requests-mock-1.9.3, cov-2.12.1, pyfakefs-4.5.0, flaky-3.7.0, benchmark-3.4.1, xdist-2.3.0, pylama-7.7.1, datadir-1.3.1, regressions-2.2.0, cases-3.6.3, xprocess-0.18.1, black-0.3.12, checkdocs-2.7.1, anyio-3.3.0, Faker-8.11.0, asyncio-0.15.1, trio-0.7.0, httpbin-1.0.0, subtests-0.5.0, isort-2.0.0, hypothesis-6.14.6, mock-3.6.1, profiling-1.7.0
collected 30 items / 20 errors / 10 selected

================================================================================== ERRORS ==================================================================================
__________________________________________________________ ERROR collecting testrepository/tests/test_commands.py __________________________________________________________
testrepository/tests/test_commands.py:28: in <module>
    from testrepository import commands
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
_________________________________________________________ ERROR collecting testrepository/tests/test_repository.py _________________________________________________________
testrepository/tests/test_repository.py:23: in <module>
    from subunit import (
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
__________________________________________________________ ERROR collecting testrepository/tests/test_results.py ___________________________________________________________
testrepository/tests/test_results.py:23: in <module>
    from testrepository.results import SummarizingResult
testrepository/results.py:16: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
________________________________________________________ ERROR collecting testrepository/tests/test_testcommand.py _________________________________________________________
testrepository/tests/test_testcommand.py:23: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
_____________________________________________________________ ERROR collecting testrepository/tests/test_ui.py _____________________________________________________________
testrepository/tests/test_ui.py:27: in <module>
    from testrepository import arguments, commands
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
_____________________________________________________ ERROR collecting testrepository/tests/arguments/test_command.py ______________________________________________________
testrepository/tests/arguments/test_command.py:19: in <module>
    from testrepository.arguments import command
testrepository/arguments/command.py:18: in <module>
    from testrepository import commands
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
_____________________________________________________ ERROR collecting testrepository/tests/commands/test_commands.py ______________________________________________________
testrepository/tests/commands/test_commands.py:17: in <module>
    from testrepository.commands import commands
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
______________________________________________________ ERROR collecting testrepository/tests/commands/test_failing.py ______________________________________________________
testrepository/tests/commands/test_failing.py:20: in <module>
    from subunit.v2 import ByteStreamToStreamResult
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
_______________________________________________________ ERROR collecting testrepository/tests/commands/test_help.py ________________________________________________________
testrepository/tests/commands/test_help.py:21: in <module>
    from testrepository.commands import help, load
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
_______________________________________________________ ERROR collecting testrepository/tests/commands/test_init.py ________________________________________________________
testrepository/tests/commands/test_init.py:17: in <module>
    from testrepository.commands import init
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
_______________________________________________________ ERROR collecting testrepository/tests/commands/test_last.py ________________________________________________________
testrepository/tests/commands/test_last.py:19: in <module>
    from subunit.v2 import ByteStreamToStreamResult
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
____________________________________________________ ERROR collecting testrepository/tests/commands/test_list_tests.py _____________________________________________________
testrepository/tests/commands/test_list_tests.py:22: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
_______________________________________________________ ERROR collecting testrepository/tests/commands/test_load.py ________________________________________________________
testrepository/tests/commands/test_load.py:22: in <module>
    v2_avail = try_import('subunit.ByteStreamToStreamResult')
/usr/lib/python3.8/site-packages/extras/__init__.py:50: in try_import
    __import__(module_name)
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
____________________________________________________ ERROR collecting testrepository/tests/commands/test_quickstart.py _____________________________________________________
testrepository/tests/commands/test_quickstart.py:17: in <module>
    from testrepository.commands import quickstart
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
________________________________________________________ ERROR collecting testrepository/tests/commands/test_run.py ________________________________________________________
testrepository/tests/commands/test_run.py:27: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
______________________________________________________ ERROR collecting testrepository/tests/commands/test_slowest.py ______________________________________________________
testrepository/tests/commands/test_slowest.py:25: in <module>
    from testrepository.commands import slowest
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
_______________________________________________________ ERROR collecting testrepository/tests/commands/test_stats.py _______________________________________________________
testrepository/tests/commands/test_stats.py:17: in <module>
    from testrepository.commands import stats
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
______________________________________________________ ERROR collecting testrepository/tests/repository/test_file.py _______________________________________________________
testrepository/tests/repository/test_file.py:24: in <module>
    from testrepository.repository import file
testrepository/repository/file.py:28: in <module>
    import subunit.v2
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
___________________________________________________________ ERROR collecting testrepository/tests/ui/test_cli.py ___________________________________________________________
testrepository/tests/ui/test_cli.py:26: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
________________________________________________________ ERROR collecting testrepository/tests/ui/test_decorator.py ________________________________________________________
testrepository/tests/ui/test_decorator.py:18: in <module>
    from testrepository import commands
testrepository/commands/__init__.py:40: in <module>
    import subunit
/usr/lib/python3.8/site-packages/subunit/__init__.py:146: in <module>
    from subunit.v2 import ByteStreamToStreamResult, StreamResultToBytes
/usr/lib/python3.8/site-packages/subunit/v2.py:52: in <module>
    EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=iso8601.Utc())
E AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
============================================================================= warnings summary =============================================================================
../../../../../usr/lib/python3.8/site-packages/testresources/__init__.py:432
  /usr/lib/python3.8/site-packages/testresources/__init__.py:432: PytestCollectionWarning: cannot collect test class 'TestResourceManager' because it has a __init__ constructor (from: testrepository/tests/test_testr.py)
    class TestResourceManager(object):

-- Docs: https://docs.pytest.org/en/stable/warnings.html
========================================================================= short test summary info ==========================================================================
ERROR testrepository/tests/test_commands.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/test_repository.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/test_results.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/test_testcommand.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/test_ui.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/arguments/test_command.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_commands.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_failing.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_help.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_init.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_last.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_list_tests.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_load.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_quickstart.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_run.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_slowest.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/commands/test_stats.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/repository/test_file.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/ui/test_cli.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
ERROR testrepository/tests/ui/test_decorator.py - AttributeError: module 'subunit.iso8601' has no attribute 'Utc'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 20 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
====================================================================== 1 warning, 20 errors in 1.45s =======================================================================
pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo(<process_name>).terminate()'.

I'm using Python 3.8.11.

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

This suggests you've replaced subunit.iso8601 with the upstream copy of iso8601 somehow. What platform are you on?

Changed in subunit:
status: New → Incomplete
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

This should be resolved (or at least have changed) now that we're relying on system iso8601.

Changed in subunit:
status: Incomplete → Fix Released
assignee: nobody → Jelmer Vernooij (jelmer)
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.