Skip to content

typing tests: Not all subclass cases are covered #96769

Closed
@sobolevn

Description

@sobolevn

There are a lot of test cases in test_typing.py where we test that different typing things cannot be used as base classes. However, there are multiple missing cases. Examples:

  • Final / Final[int] is not tested to be invalid base class:
    def test_cannot_subclass(self):
    with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE):
    class C(type(Final)):
    pass
    with self.assertRaisesRegex(TypeError, CANNOT_SUBCLASS_TYPE):
    class C(type(Final[int])):
    pass
    def test_cannot_init(self):
  • Ts is tested, but *Ts is not:
    class C(Ts): pass
  • Different special forms only tested with / or without []
  • And other issues

I think this should be all covered. I went through all subtyping tests and added more cases.
I will send a PR :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    testsTests in the Lib/test dirtopic-typingtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions