X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/895f081f74ce3f116bebb4ef76f5ab3d2e392fef..2a2676070f16dadca83ba8447c624f7524b75146:/tests/test_dcparser.py?ds=sidebyside diff --git a/tests/test_dcparser.py b/tests/test_dcparser.py index d3acef1..4dab764 100644 --- a/tests/test_dcparser.py +++ b/tests/test_dcparser.py @@ -1,24 +1,9 @@ # -*- coding: utf-8 -*- # -# 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 . +# This file is part of Librarian, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # +from __future__ import unicode_literals from librarian import dcparser from lxml import etree @@ -26,12 +11,13 @@ from nose.tools import * from os.path import splitext from tests.utils import get_all_fixtures import codecs +from datetime import date def check_dcparser(xml_file, result_file): - xml = file(xml_file).read() + xml = open(xml_file, 'rb').read() result = codecs.open(result_file, encoding='utf-8').read() - info = dcparser.BookInfo.from_string(xml).to_dict() + info = dcparser.BookInfo.from_bytes(xml).to_dict() should_be = eval(result) for key in should_be: assert_equals(info[key], should_be[key]) @@ -44,13 +30,13 @@ def test_dcparser(): def check_serialize(xml_file): - xml = file(xml_file).read() - info = dcparser.BookInfo.from_string(xml) + xml = open(xml_file, 'rb').read() + info = dcparser.BookInfo.from_bytes(xml) # serialize - serialized = etree.tostring(info.to_etree(), encoding=unicode).encode('utf-8') + serialized = etree.tostring(info.to_etree(), encoding='unicode').encode('utf-8') # then parse again - info_bis = dcparser.BookInfo.from_string(serialized) + info_bis = dcparser.BookInfo.from_bytes(serialized) # check if they are the same for key in vars(info): @@ -63,3 +49,13 @@ def test_serialize(): for fixture in get_all_fixtures('dcparser', '*.xml'): yield check_serialize, fixture + +def test_asdate(): + assert_equals(dcparser.as_date(u"2010-10-03"), date(2010, 10, 3)) + assert_equals(dcparser.as_date(u"2011"), date(2011, 1, 1)) + assert_equals(dcparser.as_date(u"2 poł. XIX w."), date(1950, 1, 1)) + assert_equals(dcparser.as_date(u"XVII w., l. 20"), date(1720, 1, 1)) + assert_equals(dcparser.as_date(u"po 1460"), date(1460, 1, 1)) + assert_equals(dcparser.as_date(u"ok. 1813-1814"), date(1813, 1, 1)) + assert_equals(dcparser.as_date(u"ok.1876-ok.1886"), date(1876, 1, 1)) + assert_equals(dcparser.as_date(u"1893/1894"), date(1893, 1, 1))