def get_modules(testfile, tests_to_run, config_overrides):
  test_dic = _parse_input(testfile)
  master_config, configs = load_configs_from_directory(test_dic["configs_directory"], config_overrides)
  _setup_paths(master_config.mapping.get("additional_paths", []))
  deployment_module = utils.load_module(test_dic["deployment_code"])
  if  "dynamic_configuration_code" in test_dic:
    perf_module = utils.load_module(test_dic["dynamic_configuration_code"])
  else:
    perf_module = utils.load_module(test_dic["perf_code"])
  test_modules = [utils.load_module(testcode) for testcode in test_dic["test_code"]]
  if tests_to_run is not None:
    tests = [test for test in _determine_tests(test_modules) if test.name in tests_to_run]
  else:
    tests = [test for test in _determine_tests(test_modules)]
  tests_with_phases = {}
  for test in tests:
    tests_with_phases[test.phase] = tests_with_phases.get(test.phase, [])+[test]
  serial_tests = tests_with_phases.pop(constants.DEFAULT_TEST_PHASE, [])
  tests = serial_tests+[test_with_phase[1] for test_with_phase in sorted(tests_with_phases.items(), key=lambda pair: pair[0])]


  return deployment_module, perf_module, tests, master_config, configs
Gets modules and objects required to run tests
dataset/ETHPy150Open linkedin/Zopkio/zopkio/test_runner_helper.py/get_modules