Show differing images side-by-side

This commit is contained in:
Brian Quinlan
2022-02-25 11:56:27 -08:00
parent f00944ce12
commit c997029a1f
2 changed files with 30 additions and 4 deletions

View File

@@ -70,7 +70,12 @@ setup(
extras_require={
'pil-measurement': ['Pillow>=6,<10'],
'dev': [
'fonttools>=3.26', 'nox', 'Pillow>=5', 'pytest>=3.6', 'xmldiff>=2.4'
'Flask>=2.0', # For server tests.
'fonttools>=3.26',
'nox',
'Pillow>=5',
'pytest>=3.6',
'xmldiff>=2.4'
],
},
license='Apache-2.0',

View File

@@ -53,14 +53,35 @@ class TestPybadgesBadge(unittest.TestCase):
for example in examples:
file_name = example.pop('file_name')
with self.subTest(example=file_name):
filepath = os.path.join(TEST_DIR, 'golden-images', file_name)
goldenpath = os.path.join(TEST_DIR, 'golden-images', file_name)
with open(filepath, mode="r", encoding="utf-8") as f:
with open(goldenpath, mode="r", encoding="utf-8") as f:
golden_image = f.read()
pybadge_image = pybadges.badge(**example)
diff = xmldiff.main.diff_texts(golden_image, pybadge_image)
self.assertFalse(diff)
if diff:
with tempfile.NamedTemporaryFile(mode="w+t",
encoding="utf-8",
delete=False,
suffix=".svg") as actual:
actual.write(pybadge_image)
with tempfile.NamedTemporaryFile(mode="w+t",
delete=False,
suffix=".html") as html:
html.write("""
<html>
<body>
<img src="file://%s"><br>
<img src="file://%s">
<body>
</html>""" % (goldenpath, actual.name))
self.fail(
"images for %s differ:\n%s\nview with:\npython -m webbrowser %s"
% (file_name, diff, html.name))
self.assertFalse(diff,)
class TestEmbedImage(unittest.TestCase):