44import json
55import os
66import re
7- import time
87import warnings
98from functools import lru_cache
109from pathlib import Path
@@ -38,7 +37,7 @@ def get_github_client(token=None):
3837 return gh
3938
4039
41- def check_specific_module_tests_requested (issue_number , token = None ):
40+ def get_requested_modules (issue_number , token = None ):
4241 """
4342 Checks if tests of specific modules are requested for given issue number
4443 (e.g. by magic string '+TESTS:clients.fdsn,clients.arclink' or '+TESTS:ALL'
@@ -79,8 +78,21 @@ def check_specific_module_tests_requested(issue_number, token=None):
7978 return modules_to_test
8079
8180
81+ def get_obspy_module_lists (module_path = "./obspy/core/util/base.py" ):
82+ """Return a dict of lists of obspy's default, network, and all modules."""
83+ try : # If ObsPy is installed just use module list from expected place.
84+ from obspy .core .util .base import DEFAULT_MODULES , ALL_MODULES , NETWORK_MODULES
85+ except (ImportError , ModuleNotFoundError ): # Else parse the module.
86+ names = {"DEFAULT_MODULES" , "NETWORK_MODULES" }
87+ values = get_values_from_module (module_path , names )
88+ DEFAULT_MODULES = values ["DEFAULT_MODULES" ]
89+ NETWORK_MODULES = values ["NETWORK_MODULES" ]
90+ ALL_MODULES = DEFAULT_MODULES + NETWORK_MODULES
91+ return dict (all = ALL_MODULES , default = DEFAULT_MODULES , network = NETWORK_MODULES )
92+
93+
8294def get_module_test_list (
83- issue_number , token = None , module_path = "./obspy/core/util/base.py"
95+ issue_number , token = None , module_path = "./obspy/core/util/base.py" ,
8496):
8597 """
8698 Gets the list of modules that should be tested for the given issue number.
@@ -92,23 +104,16 @@ def get_module_test_list(
92104 :rtype: list
93105 :returns: List of modules names to test for given issue number.
94106 """
95- try : # If ObsPy is installed just use module list from expected place.
96- from obspy .core .util .base import DEFAULT_MODULES , ALL_MODULES
97- except (ImportError , ModuleNotFoundError ): # Else parse the module.
98- names = {"DEFAULT_MODULES" , "NETWORK_MODULES" }
99- values = get_values_from_module (module_path , names )
100- DEFAULT_MODULES = values ["DEFAULT_MODULES" ]
101- NETWORK_MODULES = values ["NETWORK_MODULES" ]
102- ALL_MODULES = DEFAULT_MODULES + NETWORK_MODULES
103-
104- modules_to_test = check_specific_module_tests_requested (issue_number , token )
105-
107+ mod_dict = get_obspy_module_lists (module_path )
108+ modules_to_test = get_requested_modules (issue_number , token )
109+ # Set to default or all
106110 if modules_to_test is False :
107- return DEFAULT_MODULES
111+ modules_to_test = mod_dict [ "default" ]
108112 elif modules_to_test is True :
109- return ALL_MODULES
110- else :
111- return sorted (list (set .union (set (DEFAULT_MODULES ), modules_to_test )))
113+ modules_to_test = mod_dict ["all" ]
114+ # filter out any modules which don't exist
115+ modules_to_test = set (modules_to_test ) & set (mod_dict ["all" ])
116+ return sorted (list (set .union (set (mod_dict ["default" ]), modules_to_test )))
112117
113118
114119def get_values_from_module (node , names ):
@@ -449,6 +454,14 @@ def get_docker_build_targets(
449454 return " " .join (targets )
450455
451456
457+ def _append_obspy (module_list ):
458+ """
459+ Append the string 'obspy.' to each string in module list for use in coverage.
460+ """
461+ module_list_obspy_prepended = [f"obspy.{ x } " for x in module_list ]
462+ return module_list_obspy_prepended
463+
464+
452465def make_ci_json_config (issue_number , path = "obspy_ci_conf.json" , token = None ):
453466 """
454467 Make a json file for configuring additional actions in CI.
@@ -459,7 +472,7 @@ def make_ci_json_config(issue_number, path="obspy_ci_conf.json", token=None):
459472 # comment string to use for later actions.
460473 module_list = get_module_test_list (issue_number , token = token )
461474 docs = check_docs_build_requested (issue_number , token = token )
462- module_list_obspy_prepended = [ f"obspy. { x } " for x in module_list ]
475+ module_list_obspy_prepended = _append_obspy ( module_list )
463476
464477 out = dict (
465478 module_list = "," .join (module_list_obspy_prepended ),
0 commit comments