Skip to content

tests: avoid assertNoLogs on Python 3.9 #951

Description

@dkropachev

Summary

pyproject.toml declares requires-python = ">=3.9", but two unit tests on master use unittest.TestCase.assertNoLogs, which was added in Python 3.10 and is unavailable on Python 3.9.

Affected tests:

  • tests/unit/test_response_future.py::ResponseFutureTests::test_set_result_no_metadata_statement_adopts_metadata_changed
  • tests/unit/test_response_future.py::ResponseFutureTests::test_set_result_anomalous_metadata_id_warns_once_and_rearms

Observed behavior

Running these tests with Python 3.9.25 fails with:

AttributeError: 'ResponseFutureTests' object has no attribute 'assertNoLogs'

A direct runtime check also confirms:

hasattr(unittest.TestCase, "assertNoLogs")  # False on Python 3.9.25

Expected behavior

The unit tests should run on the minimum supported Python version. Replace assertNoLogs with a Python 3.9-compatible logging assertion/helper. Consider adding minimum-version test coverage to prevent similar regressions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions