From 5e437a927efce4c298cf05aeeeb7caa857c5377e Mon Sep 17 00:00:00 2001 From: Brian Pepple Date: Sun, 13 Oct 2024 13:59:51 -0400 Subject: [PATCH] Update metroninfo.py notes metadata --- darkseid/metroninfo.py | 10 ++++++++-- tests/test_metroninfo.py | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/darkseid/metroninfo.py b/darkseid/metroninfo.py index 205bc3d..af2d2b2 100644 --- a/darkseid/metroninfo.py +++ b/darkseid/metroninfo.py @@ -21,6 +21,7 @@ Credit, InfoSources, Metadata, + Notes, Price, Publisher, Role, @@ -383,7 +384,8 @@ def convert_metadata_to_xml(self, md: Metadata, xml=None) -> ET.ElementTree: # self._assign(root, "CoverDate", md.cover_date) self._assign(root, "StoreDate", md.store_date) self._assign(root, "PageCount", md.page_count) - self._assign(root, "Notes", md.notes) + if md.notes is not None and md.notes.metron_info: + self._assign(root, "Notes", md.notes.metron_info) if md.genres: self._assign_basic_children(root, "Genres", "Genre", md.genres) if md.tags: @@ -580,6 +582,9 @@ def get_urls(url_node: ET.Element) -> URLS | None: primary = url_node.find("Primary").text return URLS(primary, url_lst) + def get_note(note_node: ET.Element) -> Notes | None: + return None if note_node is None else Notes(note_node.text) + def get_credits(credits_node: ET.Element) -> list[Credit] | None: if credits_node is None: return None @@ -613,6 +618,7 @@ def get_credits(credits_node: ET.Element) -> list[Credit] | None: credits_node = root.find("Credits") prices_node = root.find("Prices") url_node = root.find("URLs") + note_node = root.find("Notes") md = Metadata() md.info_source = get_info_sources(id_node) @@ -633,7 +639,7 @@ def get_credits(credits_node: ET.Element) -> list[Credit] | None: ) p_count = get("PageCount") md.page_count = int(p_count) if p_count is not None and p_count.isdigit() else None - md.notes = get("Notes") + md.notes = get_note(note_node) md.genres = get_resource_list(root.find("Genres")) md.tags = get_resource_list(root.find("Tags")) md.story_arcs = get_arcs(arcs_node) diff --git a/tests/test_metroninfo.py b/tests/test_metroninfo.py index e6e5800..80fd3d1 100644 --- a/tests/test_metroninfo.py +++ b/tests/test_metroninfo.py @@ -14,6 +14,7 @@ Credit, InfoSources, Metadata, + Notes, Price, Publisher, Role, @@ -120,6 +121,7 @@ def test_convert_metadata_to_xml(metron_info): tags=[Basic("Good", id_=1)], locations=[Basic("Atlantis", id_=90)], reprints=[Basic("Action Comics #1", id_=1)], + notes=Notes(metron_info="This is a test"), ) # Act @@ -180,6 +182,7 @@ def test_metadata_from_string(metron_info): Arc1 + This is a test 2024-08-12T12:13:54.087728-04:00 @@ -226,6 +229,8 @@ def test_metadata_from_string(metron_info): assert result.modified == datetime( 2024, 8, 12, 12, 13, 54, 87728, tzinfo=timezone(timedelta(days=-1, seconds=72000)) ) + assert result.notes is not None + assert result.notes.metron_info == "This is a test" def validate(xml_path: str, xsd_path: str) -> bool: