Fix serialization errors

Add tests to ensure issue is fixed
Add make check
Add pytest to make CI
This commit is contained in:
Timmy Welch 2022-04-19 13:16:33 -07:00
parent 548432ef31
commit 9c45f90829
2 changed files with 34 additions and 25 deletions

View File

@ -18,7 +18,7 @@ import logging
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
from comicapi import utils from comicapi import utils
from comicapi.genericmetadata import GenericMetadata from comicapi.genericmetadata import GenericMetadata, PageType
from comicapi.issuestring import IssueString from comicapi.issuestring import IssueString
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -170,6 +170,11 @@ class ComicInfoXml:
pages_node = ET.SubElement(root, "Pages") pages_node = ET.SubElement(root, "Pages")
for page_dict in md.pages: for page_dict in md.pages:
page = page_dict
if "Type" in page:
page["Type"] = page["Type"].value
if "Image" in page:
page["Image"] = str(page["Image"])
page_node = ET.SubElement(pages_node, "Page") page_node = ET.SubElement(pages_node, "Page")
page_node.attrib = dict(sorted(page_dict.items())) page_node.attrib = dict(sorted(page_dict.items()))
@ -251,6 +256,10 @@ class ComicInfoXml:
pages_node = root.find("Pages") pages_node = root.find("Pages")
if pages_node is not None: if pages_node is not None:
for page in pages_node: for page in pages_node:
if "Type" in page.attrib:
page.attrib["Type"] = PageType(page.attrib["Type"])
if "Image" in page.attrib:
page.attrib["Image"] = int(page.attrib["Image"])
md.pages.append(page.attrib) md.pages.append(page.attrib)
md.is_empty = False md.is_empty = False

View File

@ -389,36 +389,36 @@ md_test.credits = [
] ]
md_test.tags = [] md_test.tags = []
md_test.pages = [ md_test.pages = [
{"Image": "0", "ImageHeight": "1280", "ImageSize": "195977", "ImageWidth": "800", "Type": "FrontCover"}, {"Image": 0, "ImageHeight": "1280", "ImageSize": "195977", "ImageWidth": "800", "Type": PageType.FrontCover},
{"Image": "1", "ImageHeight": "2039", "ImageSize": "611993", "ImageWidth": "1327"}, {"Image": 1, "ImageHeight": "2039", "ImageSize": "611993", "ImageWidth": "1327"},
{"Image": "2", "ImageHeight": "2039", "ImageSize": "783726", "ImageWidth": "1327"}, {"Image": 2, "ImageHeight": "2039", "ImageSize": "783726", "ImageWidth": "1327"},
{"Image": "3", "ImageHeight": "2039", "ImageSize": "679584", "ImageWidth": "1327"}, {"Image": 3, "ImageHeight": "2039", "ImageSize": "679584", "ImageWidth": "1327"},
{"Image": "4", "ImageHeight": "2039", "ImageSize": "788179", "ImageWidth": "1327"}, {"Image": 4, "ImageHeight": "2039", "ImageSize": "788179", "ImageWidth": "1327"},
{"Image": "5", "ImageHeight": "2039", "ImageSize": "864433", "ImageWidth": "1327"}, {"Image": 5, "ImageHeight": "2039", "ImageSize": "864433", "ImageWidth": "1327"},
{"Image": "6", "ImageHeight": "2039", "ImageSize": "765606", "ImageWidth": "1327"}, {"Image": 6, "ImageHeight": "2039", "ImageSize": "765606", "ImageWidth": "1327"},
{"Image": "7", "ImageHeight": "2039", "ImageSize": "876427", "ImageWidth": "1327"}, {"Image": 7, "ImageHeight": "2039", "ImageSize": "876427", "ImageWidth": "1327"},
{"Image": "8", "ImageHeight": "2039", "ImageSize": "852622", "ImageWidth": "1327"}, {"Image": 8, "ImageHeight": "2039", "ImageSize": "852622", "ImageWidth": "1327"},
{"Image": "9", "ImageHeight": "2039", "ImageSize": "800205", "ImageWidth": "1327"}, {"Image": 9, "ImageHeight": "2039", "ImageSize": "800205", "ImageWidth": "1327"},
{"Image": "10", "ImageHeight": "2039", "ImageSize": "746243", "ImageWidth": "1326"}, {"Image": 10, "ImageHeight": "2039", "ImageSize": "746243", "ImageWidth": "1326"},
{"Image": "11", "ImageHeight": "2039", "ImageSize": "718062", "ImageWidth": "1327"}, {"Image": 11, "ImageHeight": "2039", "ImageSize": "718062", "ImageWidth": "1327"},
{"Image": "12", "ImageHeight": "2039", "ImageSize": "532179", "ImageWidth": "1326"}, {"Image": 12, "ImageHeight": "2039", "ImageSize": "532179", "ImageWidth": "1326"},
{"Image": "13", "ImageHeight": "2039", "ImageSize": "686708", "ImageWidth": "1327"}, {"Image": 13, "ImageHeight": "2039", "ImageSize": "686708", "ImageWidth": "1327"},
{"Image": "14", "ImageHeight": "2039", "ImageSize": "641907", "ImageWidth": "1327"}, {"Image": 14, "ImageHeight": "2039", "ImageSize": "641907", "ImageWidth": "1327"},
{"Image": "15", "ImageHeight": "2039", "ImageSize": "805388", "ImageWidth": "1327"}, {"Image": 15, "ImageHeight": "2039", "ImageSize": "805388", "ImageWidth": "1327"},
{"Image": "16", "ImageHeight": "2039", "ImageSize": "668927", "ImageWidth": "1326"}, {"Image": 16, "ImageHeight": "2039", "ImageSize": "668927", "ImageWidth": "1326"},
{"Image": "17", "ImageHeight": "2039", "ImageSize": "710605", "ImageWidth": "1327"}, {"Image": 17, "ImageHeight": "2039", "ImageSize": "710605", "ImageWidth": "1327"},
{"Image": "18", "ImageHeight": "2039", "ImageSize": "761398", "ImageWidth": "1326"}, {"Image": 18, "ImageHeight": "2039", "ImageSize": "761398", "ImageWidth": "1326"},
{"Image": "19", "ImageHeight": "2039", "ImageSize": "743807", "ImageWidth": "1327"}, {"Image": 19, "ImageHeight": "2039", "ImageSize": "743807", "ImageWidth": "1327"},
{"Image": "20", "ImageHeight": "2039", "ImageSize": "552911", "ImageWidth": "1326"}, {"Image": 20, "ImageHeight": "2039", "ImageSize": "552911", "ImageWidth": "1326"},
{"Image": "21", "ImageHeight": "2039", "ImageSize": "556827", "ImageWidth": "1327"}, {"Image": 21, "ImageHeight": "2039", "ImageSize": "556827", "ImageWidth": "1327"},
{"Image": "22", "ImageHeight": "2039", "ImageSize": "675078", "ImageWidth": "1326"}, {"Image": 22, "ImageHeight": "2039", "ImageSize": "675078", "ImageWidth": "1326"},
{ {
"Bookmark": "Interview", "Bookmark": "Interview",
"Image": "23", "Image": "23",
"ImageHeight": "2032", "ImageHeight": "2032",
"ImageSize": "800965", "ImageSize": "800965",
"ImageWidth": "1338", "ImageWidth": "1338",
"Type": "Letters", "Type": PageType.Letters,
}, },
] ]
md_test.price = None md_test.price = None