Repository navigation
Expand file tree
/
Copy pathtox.ini
More file actions
59 lines (55 loc) · 2.19 KB
/
Copy pathtox.ini
File metadata and controls
59 lines (55 loc) · 2.19 KB
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
# This file is part of ELNBuildSync
# Copyright (C) 2026 Stephen Gallagher <sgallagh@redhat.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# Local test runner for ELNBuildSync.
#
# `unit` and `integration` both need the same system (dnf-installed)
# packages as Dockerfile/.github/workflows/*.yml -- e.g. python3-rpm,
# python3-krb5, python3-gssapi, python3-twisted, koji, bodhi-client,
# fedora-messaging -- none of which are reasonably pip-installable.
# `sitepackages = true` lets each tox venv see those, while tox still
# installs this project (editable) and its lightweight `test` extra
# (pytest/pytest-asyncio, from pyproject.toml) into the venv itself.
#
# Usage:
# tox # unit, then integration
# tox -e unit # fast, no external services required
# tox -e integration # spins up an ephemeral Postgres container; needs
# # podman or docker on PATH (see
# # tests/integration/run_local.sh)
[tox]
envlist = unit, integration
skip_missing_interpreters = true
[testenv]
sitepackages = true
package = editable
extras = test
[testenv:unit]
description = Run the non-integration unit test suite.
commands = pytest tests -m "not integration" {posargs}
[testenv:integration]
description =
Run the end-to-end integration suite (tests/integration/), against a
disposable Postgres container managed by run_local.sh.
allowlist_externals = bash
passenv =
HOME
XDG_RUNTIME_DIR
DBUS_SESSION_BUS_ADDRESS
ELNBUILDSYNC_TEST_DB_PORT
commands = bash {toxinidir}/tests/integration/run_local.sh {posargs}