1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
[build-system]
requires = ["hatchling", "hatch_vcs"]
build-backend = "hatchling.build"
[project]
name = "testtools"
description = "Extensions to the Python standard library unit testing framework"
readme = "doc/overview.rst"
authors = [{name = "Jonathan M. Lange", email = "jml+testtools@mumak.net"}]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Testing",
]
dynamic = ["version"]
requires-python = ">=3.10"
[project.urls]
Homepage = "https://github.com/testing-cabal/testtools"
[project.optional-dependencies]
test = ["testscenarios", "testresources"]
twisted = ["Twisted", "fixtures"]
dev = [
"ruff==0.14.9",
"mypy>=1.0.0",
]
[tool.hatch.version]
source = "vcs"
[tool.hatch.build.hooks.vcs]
version-file = "testtools/_version.py"
tag-pattern = "^(testtools-)?(?P<version>[0-9]+(\\.[0-9]+)*(-[0-9]+)?)(\\.post(?P<post>[0-9]+))?$"
template = """\
# This file is automatically generated by hatch.
version = {version!r}
__version__ = {version_tuple!r}
"""
[tool.hatch.build.targets.wheel]
# testtools is not zip safe due to dynamic imports and resource loading
only-include = ["testtools"]
[tool.mypy]
python_version = "3.10"
show_column_numbers = true
show_error_context = true
strict = true
# this is here temporarily due to the rapid changes in typing across
# dependencies
warn_unused_ignores = false
# FIXME(stephenfin): We should remove this
implicit_reexport = true
exclude = 'doc'
[[tool.mypy.overrides]]
module = [
"testresources.*",
"testscenarios.*",
]
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = [
# FIXME(stephenfin): We would like to remove all modules from this list
# except tests (we're not sadists)
"testtools.assertions",
"testtools.compat",
"testtools.content",
"testtools.content_type",
"testtools.matchers.*",
"testtools.monkey",
"testtools.run",
"testtools.runtest",
"testtools.testcase",
"testtools.testresult.*",
"testtools.testsuite",
"testtools.twistedsupport.*",
"tests.*",
]
disallow_untyped_calls = false
disallow_untyped_defs = false
disallow_subclassing_any = false
disallow_any_generics = false
[tool.ruff.lint]
select = [
"E",
"F",
"I",
"PIE",
"UP",
"RSE",
"RUF",
]
ignore = []
[tool.ruff.lint.pydocstyle]
convention = "google"
|