MCPcopy
hub / github.com/shareAI-lab/learn-claude-code / load_module

Function load_module

tests/test_compaction_tool_pairs.py:18–65  ·  view source on GitHub ↗
(name: str, path: Path, temp_cwd: Path)

Source from the content-addressed store, hash-verified

16
17
18def load_module(name: str, path: Path, temp_cwd: Path):
19 fake_anthropic = types.ModuleType("anthropic")
20
21 class FakeAnthropic:
22 def __init__(self, *args, **kwargs):
23 self.messages = types.SimpleNamespace(create=None)
24
25 fake_dotenv = types.ModuleType("dotenv")
26 setattr(fake_anthropic, "Anthropic", FakeAnthropic)
27 setattr(fake_dotenv, "load_dotenv", lambda override=True: None)
28
29 previous_anthropic = sys.modules.get("anthropic")
30 previous_dotenv = sys.modules.get("dotenv")
31 previous_cwd = Path.cwd()
32 previous_model = os.environ.get("MODEL_ID")
33 previous_key = os.environ.get("ANTHROPIC_API_KEY")
34
35 spec = importlib.util.spec_from_file_location(name, path)
36 if spec is None or spec.loader is None:
37 raise RuntimeError(f"Unable to load {path}")
38 module = importlib.util.module_from_spec(spec)
39
40 sys.modules["anthropic"] = fake_anthropic
41 sys.modules["dotenv"] = fake_dotenv
42 os.environ["MODEL_ID"] = "test-model"
43 os.environ["ANTHROPIC_API_KEY"] = "test-key"
44 try:
45 os.chdir(temp_cwd)
46 spec.loader.exec_module(module)
47 return module
48 finally:
49 os.chdir(previous_cwd)
50 if previous_anthropic is None:
51 sys.modules.pop("anthropic", None)
52 else:
53 sys.modules["anthropic"] = previous_anthropic
54 if previous_dotenv is None:
55 sys.modules.pop("dotenv", None)
56 else:
57 sys.modules["dotenv"] = previous_dotenv
58 if previous_model is None:
59 os.environ.pop("MODEL_ID", None)
60 else:
61 os.environ["MODEL_ID"] = previous_model
62 if previous_key is None:
63 os.environ.pop("ANTHROPIC_API_KEY", None)
64 else:
65 os.environ["ANTHROPIC_API_KEY"] = previous_key
66
67
68def assistant_text():

Calls 1

getMethod · 0.45

Tested by

no test coverage detected