File: tox.ini

package info (click to toggle)
python-sqlalchemy-utils 0.42.1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,236 kB
  • sloc: python: 13,002; makefile: 20
file content (81 lines) | stat: -rw-r--r-- 2,669 bytes parent folder | download
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
[tox]
envlist =
    py{3.9, 3.10, 3.11, 3.12, 3.13}-sqlalchemy{14, 2}
    ruff
    docs
labels =
    update = update-{requirements, pre-commit}

[testenv]
commands =
    py.test sqlalchemy_utils --cov=sqlalchemy_utils --cov-report=xml tests
deps =
    .[test_all]
    pytest-cov
    sqlalchemy14: SQLAlchemy>=1.4,<1.5
    sqlalchemy2: SQLAlchemy>=2
    ; It's sometimes necessary to test against specific sqlalchemy versions
    ; to verify bug or feature behavior before or after a specific version.
    ;
    ; You can choose the sqlalchemy version using this command syntax:
    ; $ tox -e py39-sqlalchemy1_4_xx
    ;
    ; sqlalchemy 1.4.19 through 1.4.23 have JSON-related TypeErrors. See #543.
    sqlalchemy1_4_19: SQLAlchemy==1.4.19
    ; sqlalchemy <1.4.28 threw a DeprecationWarning when copying a URL. See #573.
    sqlalchemy1_4_27: SQLAlchemy==1.4.27
    ; sqlalchemy 1.4.30 introduced UUID literal quoting. See #580.
    sqlalchemy1_4_29: SQLAlchemy==1.4.29
setenv =
    SQLALCHEMY_WARN_20 = true
passenv =
    SQLALCHEMY_UTILS_TEST_*
recreate = True

[testenv:ruff]
skip_install = True
recreate = False
deps = pre-commit
commands =
    pre-commit run --all ruff-check
    pre-commit run --all ruff-format

[testenv:docs]
base_python = py3.13
recreate = False
deps = -r requirements/docs/requirements.txt
commands = sphinx-build docs/ build/docs

[pytest]
filterwarnings =
    error
    ; Ignore ResourceWarnings caused by unclosed sockets in pg8000.
    ; These are caught and re-raised as pytest.PytestUnraisableExceptionWarnings.
    ignore:Exception ignored:pytest.PytestUnraisableExceptionWarning
    ; Ignore DeprecationWarnings caused by pg8000.
    ignore:distutils Version classes are deprecated.:DeprecationWarning
    ; Ignore warnings about passlib's use of the crypt module (Python 3.11).
    ignore:'crypt' is deprecated and slated for removal:DeprecationWarning
    ; Ignore Python 3.12 UTC deprecation warnings caused by pendulum.
    ignore:datetime.datetime.utcfromtimestamp:DeprecationWarning


[testenv:update-{requirements, pre-commit}]
base_python = py3.13
recreate = true
description = Update tool dependency versions
skip_install = true
deps =
    requirements: poetry
    requirements: poetry-plugin-export
    pre-commit: pre-commit
commands =
    # Update requirements files
    requirements: poetry update --directory="requirements/docs" --lock
    requirements: poetry export --directory="requirements/docs" --output="requirements.txt" --without-hashes

    # Update pre-commit hook versions
    pre-commit: pre-commit autoupdate

    # Run pre-commit immediately, but ignore its exit code
    pre-commit: - pre-commit run -a