Skip to content

Commit

Permalink
Fix up tests
Browse files Browse the repository at this point in the history
  • Loading branch information
marcpage authored and pagerk committed Aug 27, 2024
1 parent bee9a0d commit 1c8bc88
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 6 deletions.
2 changes: 1 addition & 1 deletion tests/test_parse_metdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -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]


Expand Down
41 changes: 36 additions & 5 deletions tests/test_webapi_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 = {}
Expand Down Expand Up @@ -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__":
Expand Down

0 comments on commit 1c8bc88

Please sign in to comment.