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

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""" 

8 

9from subprocess import run 

10import os 

11import sys 

12from typing import Optional 

13 

14import pytest 

15 

16from mlos_bench.tests import ZONE_NAMES 

17 

18 

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] 

26 

27 

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}'")