From df75e04d1dba359f44263c24ca9aecb3fc5e4093 Mon Sep 17 00:00:00 2001 From: Nemo Date: Sun, 4 Jul 2021 02:12:39 +0530 Subject: [PATCH] [tests] Validate metadata --- tests/book-flatten.md | 1 - tests/book-rotate.md | 3 --- tests/test_integration.py | 20 ++++++++++++-------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/book-flatten.md b/tests/book-flatten.md index 239cb4b..c18cc01 100644 --- a/tests/book-flatten.md +++ b/tests/book-flatten.md @@ -1,5 +1,4 @@ existing_bookmarks: flatten -title: Super Jelly Book # Super Potato Book diff --git a/tests/book-rotate.md b/tests/book-rotate.md index 0b1ef0b..a70509a 100644 --- a/tests/book-rotate.md +++ b/tests/book-rotate.md @@ -1,7 +1,4 @@ existing_bookmarks: remove -author: Wiki, the Cat -subject: A book about adventures of Wiki, the cat. -keywords: wiki,potato,jelly # Super Potato Book # Volume 1 diff --git a/tests/test_integration.py b/tests/test_integration.py index 84abdca..13df30b 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -7,11 +7,11 @@ from itertools import chain ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) + "/../" TEST_DATA = [ - ("clean",6, [('Super Potato Book', 0, 0), ('Volume 1', 0, 0), ('Part 1', 0, 1), ('Volume 2', 3, 0), ('Part 2', 3, 1)]), - ("keep",6, [('Super Potato Book', 0, 0), ('Volume 1', 0, 0), ('Part 1', 0, 1), ('Chapter 1', 0, 2), ('Chapter 2', 1, 2), ('Scene 1', 1, 3), ('Scene 2', 2, 3), ('Volume 2', 3, 0), ('Part 3', 3, 1), ('Chapter 3', 3, 2), ('Chapter 4', 4, 2), ('Scene 3', 4, 3), ('Scene 4', 5, 3)]), - ("flatten", 6, [('Super Potato Book', 0, 0), ('Volume 1', 0, 0), ('Part 1', 0, 1), ('Chapter 1', 0, 2), ('Chapter 2', 1, 2), ('Scene 1', 1, 2), ('Scene 2', 2, 2), ('Volume 2', 3, 0), ('Part 3', 3, 1), ('Chapter 3', 3, 2), ('Chapter 4', 4, 2), ('Scene 3', 4, 2), ('Scene 4', 5, 2)]), - ("rotate", 9, [('Super Potato Book', 0, 0), ('Volume 1', 0, 0), ('Part 1', 0, 1), ('Volume 2', 3, 0), ('Part 2', 3, 1), ('Volume 3', 6, 0), ('Part 3', 6, 1)]), - ("min",3, [('Part 1', 0, 0), ('Chapter 1', 0, 1), ('Chapter 2', 1, 1), ('Scene 1', 1, 2), ('Scene 2', 2, 2)]) + ("clean",6, {'Author': 'Wiki, the Cat', 'Title': 'Super Potato Book', 'Subject': 'A book about adventures of Wiki, the cat.', 'Keywords': 'wiki,potato,jelly'}, [('Super Potato Book', 0, 0), ('Volume 1', 0, 0), ('Part 1', 0, 1), ('Volume 2', 3, 0), ('Part 2', 3, 1)]), + ("keep",6, {'Title': 'Super Potato Book'}, [('Super Potato Book', 0, 0), ('Volume 1', 0, 0), ('Part 1', 0, 1), ('Chapter 1', 0, 2), ('Chapter 2', 1, 2), ('Scene 1', 1, 3), ('Scene 2', 2, 3), ('Volume 2', 3, 0), ('Part 3', 3, 1), ('Chapter 3', 3, 2), ('Chapter 4', 4, 2), ('Scene 3', 4, 3), ('Scene 4', 5, 3)]), + ("flatten", 6, {}, [('Super Potato Book', 0, 0), ('Volume 1', 0, 0), ('Part 1', 0, 1), ('Chapter 1', 0, 2), ('Chapter 2', 1, 2), ('Scene 1', 1, 2), ('Scene 2', 2, 2), ('Volume 2', 3, 0), ('Part 3', 3, 1), ('Chapter 3', 3, 2), ('Chapter 4', 4, 2), ('Scene 3', 4, 2), ('Scene 4', 5, 2)]), + ("rotate", 9, {}, [('Super Potato Book', 0, 0), ('Volume 1', 0, 0), ('Part 1', 0, 1), ('Volume 2', 3, 0), ('Part 2', 3, 1), ('Volume 3', 6, 0), ('Part 3', 6, 1)]), + ("min",3, {}, [('Part 1', 0, 0), ('Chapter 1', 0, 1), ('Chapter 2', 1, 1), ('Scene 1', 1, 2), ('Scene 2', 2, 2)]) ] def pdf_name(name): @@ -41,10 +41,14 @@ def get_all_bookmarks(pdf): bookmarks = flatten_bookmarks(pdf.getOutlines()) return [(d[0]['/Title'], pdf.getDestinationPageNumber(d[0]), d[1]) for d in bookmarks] -@pytest.mark.parametrize("name,pages,bookmarks", TEST_DATA) -def test_book(name, pages, bookmarks): +@pytest.mark.parametrize("name,pages,metadata, bookmarks", TEST_DATA) +def test_book(name, pages, metadata, bookmarks): output_file = render(name) pdf = PyPDF3.PdfFileReader(output_file) assert pages == pdf.getNumPages() assert bookmarks == get_all_bookmarks(pdf) - + info = pdf.getDocumentInfo() + assert 'pystitcher/1.0.1' == info['/Producer'] + assert 'pystitcher/1.0.1' == info['/Creator'] + for key in metadata: + assert info["/%s" % key] == metadata[key]