Coverage for mlos_bench/mlos_bench/tests/test_with_alt_tz.py: 86%
22 statements
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-06 00:35 +0000
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-06 00:35 +0000
1#
2# Copyright (c) Microsoft Corporation.
3# Licensed under the MIT License.
4#
5"""
6Tests various other test scenarios with alternative default (un-named) TZ info.
7"""
9from subprocess import run
10import os
11import sys
12from typing import Optional
14import pytest
16from mlos_bench.tests import ZONE_NAMES
19DIRNAME = os.path.dirname(__file__)
20TZ_TEST_FILES = [
21 DIRNAME + "/environments/local/composite_local_env_test.py",
22 DIRNAME + "/environments/local/local_env_telemetry_test.py",
23 DIRNAME + "/storage/exp_load_test.py",
24 DIRNAME + "/storage/trial_telemetry_test.py",
25]
28@pytest.mark.skipif(sys.platform == 'win32', reason="TZ environment variable is a UNIXism")
29@pytest.mark.parametrize(("tz_name"), ZONE_NAMES)
30@pytest.mark.parametrize(("test_file"), TZ_TEST_FILES)
31def test_trial_telemetry_alt_tz(tz_name: Optional[str], test_file: str) -> None:
32 """
33 Run the tests under alternative default (un-named) TZ info.
34 """
35 env = os.environ.copy()
36 if tz_name is None:
37 env.pop("TZ", None)
38 else:
39 env["TZ"] = tz_name
40 cmd = run(
41 [sys.executable, "-m", "pytest", "-n0", test_file],
42 env=env,
43 capture_output=True,
44 check=False,
45 )
46 if cmd.returncode != 0:
47 print(cmd.stdout.decode())
48 print(cmd.stderr.decode())
49 raise AssertionError(f"Test(s) failed: # TZ='{tz_name}' '{sys.executable}' -m pytest -n0 '{test_file}'")