X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/215503e15ca9d6d1e8a053f7bfa359af1af102f3..2e508c48675d8fcf048b7dd9ad7caa7fbc23dff0:/tests/test_html.py?ds=sidebyside diff --git a/tests/test_html.py b/tests/test_html.py old mode 100755 new mode 100644 index dcb19fc..1d698fd --- a/tests/test_html.py +++ b/tests/test_html.py @@ -1,60 +1,55 @@ -# -*- coding: utf-8 -*- +# This file is part of Librarian, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Wolne Lektury. See NOTICE for more information. # -# This file is part of Librarian. -# -# Copyright © 2008,2009,2010 Fundacja Nowoczesna Polska -# -# For full list of contributors see AUTHORS file. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -from librarian import html, NoDublinCore -from nose.tools import * -from utils import get_fixture, remove_output_file - - -def teardown_transform(): - remove_output_file('text', 'asnyk_miedzy_nami.html') - - -@with_setup(None, teardown_transform) -def test_transform(): - output_file_path = get_fixture('text', 'asnyk_miedzy_nami.html') - expected_output_file_path = get_fixture('text', 'asnyk_miedzy_nami_expected.html') - - html.transform( - get_fixture('text', 'asnyk_miedzy_nami.xml'), - output_file_path, - ) - - assert_equal(file(output_file_path).read(), file(expected_output_file_path).read()) - - -@with_setup(None, teardown_transform) -@raises(NoDublinCore) -def test_no_dublincore(): - html.transform( - get_fixture('text', 'asnyk_miedzy_nami_nodc.xml'), - get_fixture('text', 'asnyk_miedzy_nami_nodc.html'), - ) - - -@with_setup(None, teardown_transform) -def test_passing_parse_dublincore_to_transform(): - """Passing parse_dublincore=False to transform omits DublinCore parsing.""" - html.transform( - get_fixture('text', 'asnyk_miedzy_nami_nodc.xml'), - get_fixture('text', 'asnyk_miedzy_nami.html'), - parse_dublincore=False, - ) +import re +from unittest import TestCase +from librarian import NoDublinCore +from librarian.builders import builders +from librarian.document import WLDocument +from librarian.parser import WLDocument as LegacyWLDocument +from .utils import get_fixture + + +class TransformTest(TestCase): + maxDiff = None + + def test_transform_legacy(self): + expected_output_file_path = get_fixture('text', 'asnyk_miedzy_nami_expected.legacy.html') + + html = LegacyWLDocument.from_file( + get_fixture('text', 'miedzy-nami-nic-nie-bylo.xml') + ).as_html().get_bytes().decode('utf-8') + + html = re.sub(r'idm\d+', 'idmNNN', html) + with open(expected_output_file_path) as f: + self.assertEqual(f.read(), html) + + def test_transform(self): + expected_output_file_path = get_fixture('text', 'asnyk_miedzy_nami_expected.html') + html = WLDocument( + filename=get_fixture('text', 'miedzy-nami-nic-nie-bylo.xml') + ).build(builders['html']).get_bytes().decode('utf-8') + + with open(expected_output_file_path) as f: + self.assertEqual(html, f.read()) + + def test_no_dublincore(self): + with self.assertRaises(NoDublinCore): + LegacyWLDocument.from_file( + get_fixture('text', 'asnyk_miedzy_nami_nodc.xml') + ).as_html() + + def test_passing_parse_dublincore_to_transform(self): + """Passing parse_dublincore=False to transform omits DublinCore parsing.""" + LegacyWLDocument.from_file( + get_fixture('text', 'asnyk_miedzy_nami_nodc.xml'), + parse_dublincore=False, + ).as_html() + + def test_empty(self): + self.assertIsNone( + LegacyWLDocument.from_bytes( + b'', + parse_dublincore=False, + ).as_html() + )