Coverage for mlos_viz/mlos_viz/tests/conftest.py: 62%

21 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2025-10-30 00:51 +0000

1# 

2# Copyright (c) Microsoft Corporation. 

3# Licensed under the MIT License. 

4# 

5"""Export test fixtures for mlos_viz.""" 

6 

7import os 

8import sys 

9from glob import glob 

10from pathlib import Path 

11from warnings import warn 

12 

13from mlos_bench.tests import tunable_groups_fixtures 

14from mlos_bench.tests.storage.sql import fixtures as sql_storage_fixtures 

15 

16# Expose some of those as local names so they can be picked up as fixtures by pytest. 

17 

18storage = sql_storage_fixtures.storage 

19exp_storage = sql_storage_fixtures.exp_storage 

20exp_data = sql_storage_fixtures.exp_data 

21 

22tunable_groups_config = tunable_groups_fixtures.tunable_groups_config 

23tunable_groups = tunable_groups_fixtures.tunable_groups 

24 

25# Workaround for #1004 

26# See Also: https://github.com/python/cpython/issues/111754 

27if sys.platform == "win32": 

28 # Fix Tcl/Tk folder 

29 tcl_path_info = { 

30 "TCL_LIBRARY": ["tcl*", "init.tcl"], 

31 "TK_LIBRARY": ["tk*", "pkgIndex.tcl"], 

32 "TIX_LIBRARY": ["tix*", "pkgIndex.tcl"], 

33 } 

34 for env_var, (subdir_pattern, file_name) in tcl_path_info.items(): 

35 if env_var not in os.environ: 

36 try: 

37 os.environ[env_var] = str( 

38 Path( 

39 next( 

40 iter( 

41 glob( 

42 os.path.join( 

43 sys.base_prefix, 

44 "Library", 

45 "lib", 

46 subdir_pattern, 

47 file_name, 

48 ) 

49 ) 

50 ) 

51 ) 

52 ).parent 

53 ) 

54 warn(f"""Setting {env_var} to {os.environ[env_var]}""", UserWarning) 

55 except StopIteration: 

56 warn( 

57 UserWarning(f"{env_var} not found, some Tcl/Tk functionality may be limited.") 

58 )