From 1c8bc88deb86e4b7722baa381d9fa0c14cd76e3a Mon Sep 17 00:00:00 2001 From: Marc Page Date: Tue, 27 Aug 2024 06:42:23 -0500 Subject: [PATCH] Fix up tests --- tests/test_parse_metdata.py | 2 +- tests/test_webapi_v1.py | 41 ++++++++++++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/tests/test_parse_metdata.py b/tests/test_parse_metdata.py index 9e16c51..01f2dea 100644 --- a/tests/test_parse_metdata.py +++ b/tests/test_parse_metdata.py @@ -90,7 +90,7 @@ def test_load_inlines() -> None: metadata["1"]["contents"] ] assert "contents" not in metadata["2"], metadata - assert "inline src missing" in mock.out, [mock.out] + assert "inline src file not found" in mock.out, [mock.out] assert "missing.src" in mock.out, [mock.out] diff --git a/tests/test_webapi_v1.py b/tests/test_webapi_v1.py index 979bae1..5e7840e 100644 --- a/tests/test_webapi_v1.py +++ b/tests/test_webapi_v1.py @@ -7,12 +7,16 @@ from json import loads, dumps from types import SimpleNamespace from io import BytesIO +from os.path import join, dirname from genweb.webapi_v1 import ApiV1 import genweb.genweb import genweb.webapi_v1 +DATA_DIR = join(dirname(__file__), "data") + + class MockHandler: def __init__(self, path): self.path = path @@ -26,14 +30,40 @@ def set_body(self, body: bytes): class MockMetadata(dict): - def __init__(self, **fields): + def __init__(self, path=None, **fields): self.saved = False + self.path = path super().__init__(fields) def save(self): self.saved = True +class MockSettings: + def __init__(self, path: str): + self.path = path + self.dict = { + "gedcom_path": None, + "metadata_yaml": None, + "binaries_dir": DATA_DIR, + "alias_path": None, + } + super().__init__() + + def __getitem__(self, key: str) -> dict: + return self.dict.__getitem__(key) + + def get(self, key, default): + print(f"get({key}, {default})") + return self.dict.get(key, default) + + +class MockPeople: + def __init__(self, gedcom, aliaspath): + self.gedcom = gedcom + self.aliaspath = aliaspath + + def test_list_people() -> None: api = ApiV1() api.settings = {} @@ -277,11 +307,12 @@ def test_load() -> None: metadata = {"m1": {"people": ["p1", "p2"]}, "m2": {}} genweb.webapi_v1.load_gedcom = lambda _: people genweb.webapi_v1.Metadata = lambda _: metadata - settings = {"gedcom_path": None, "metadata_yaml": None} + genweb.genweb.Settings = MockSettings + genweb.genweb.Metadata = MockMetadata + genweb.genweb.People = MockPeople + genweb.genweb.load_gedcom = lambda f: f api = ApiV1() - api.load(settings) - assert len(api.people) == 1 - assert "DoeJohn0000-" in api.people, api.people + api.load() if __name__ == "__main__":