mirror of
https://github.com/isc-projects/bind9.git
synced 2026-02-28 12:31:29 -05:00
Most Python-based system tests need to know which ports were assigned to
a given test by bin/tests/system/get_ports.sh. This is currently
handled by inspecting the values of various environment variables (set
by bin/tests/system/run.sh) and passing the port numbers to Python
scripts via pytest fixtures. However, this glue code has so far been
copy-pasted into each system test using it, rather than reused.
Since pytest also looks for conftest.py files in parent directories,
move commonly used fixtures to bin/tests/system/conftest.py. Set the
scope of all the moved fixtures to "session" as their return values are
only based on environment variables, so there is no point in recreating
them for every test requesting them. Adjust test code accordingly.
(cherry picked from commit 53ef8835c1)
37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
#!/usr/bin/python3
|
|
|
|
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
|
#
|
|
# SPDX-License-Identifier: MPL-2.0
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
|
#
|
|
# See the COPYRIGHT file distributed with this work for additional
|
|
# information regarding copyright ownership.
|
|
|
|
import shutil
|
|
import subprocess
|
|
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture
|
|
def gnutls_cli_executable():
|
|
# Ensure gnutls-cli is available.
|
|
executable = shutil.which('gnutls-cli')
|
|
if not executable:
|
|
pytest.skip('gnutls-cli not found in PATH')
|
|
|
|
# Ensure gnutls-cli supports the --logfile command-line option.
|
|
args = [executable, '--logfile=/dev/null']
|
|
try:
|
|
with subprocess.check_output(args, stderr=subprocess.STDOUT) as _:
|
|
pass
|
|
except subprocess.CalledProcessError as exc:
|
|
stderr = exc.output
|
|
if b'illegal option' in stderr:
|
|
pytest.skip('gnutls-cli does not support the --logfile option')
|
|
|
|
return executable
|