Dodanie testów regresji do modułu dcparser w bibliotece librarian.
[wolnelektury.git] / lib / librarian / tests / __init__.py
1 # -*- coding: utf-8 -*-
2 import unittest
3 from os.path import dirname, join, realpath
4
5 from librarian import dcparser
6
7
8 def test_file_path(file_name):
9     return realpath(join(dirname(__file__), file_name))
10
11
12 class TestDCParser(unittest.TestCase):
13     KNOWN_RESULTS = (
14         ('andersen_brzydkie_kaczatko.xml', {
15             'publisher': u'Fundacja Nowoczesna Polska',
16             'about': u'http://wiki.wolnepodreczniki.pl/Lektury:Andersen/Brzydkie_kaczątko',
17             'source_name': u'Andersen, Hans Christian (1805-1875), Baśnie, Gebethner i Wolff, wyd. 7, Kraków, 1925',
18             'author': u'Andersen, Hans Christian',
19             'url': u'http://wolnelektury.pl/katalog/lektura/brzydkie-kaczatko',
20             'created_at': u'2007-08-14',
21             'title': u'Brzydkie kaczątko',
22             'kind': u'Epika',
23             'source_url': u'http://www.polona.pl/dlibra/doccontent2?id=3563&dirids=4',
24             'translator': u'Niewiadomska, Cecylia',
25             'released_to_public_domain_at': u'1925-01-01',
26             'epoch': u'Romantyzm',
27             'genre': u'Baśń',
28             'technical_editor': u'Gałecki, Dariusz'
29         }),
30         ('kochanowski_piesn7.xml', {
31             'publisher': u'Fundacja Nowoczesna Polska',
32             'about': u'http://wiki.wolnepodreczniki.pl/Lektury:Kochanowski/Pieśni/Pieśń_VII_(1)',
33             'source_name': u'Kochanowski, Jan (1530-1584), Dzieła polskie, tom 1, oprac. Julian Krzyżanowski, wyd. 8, Państwowy Instytut Wydawniczy, Warszawa, 1976',
34             'author': u'Kochanowski, Jan',
35             'url': u'http://wolnelektury.pl/katalog/lektura/piesni-ksiegi-pierwsze-piesn-vii-trudna-rada-w-tej-mierze-pr',
36             'created_at': u'2007-08-31',
37             'title': u'Pieśń VII (Trudna rada w tej mierze: przyjdzie się rozjechać...)',
38             'kind': u'Liryka',
39             'source_url': u'http://www.polona.pl/Content/1499',
40             'released_to_public_domain_at': u'1584-01-01',
41             'epoch': u'Renesans',
42             'genre': u'Pieśń',
43             'technical_editor': u'Gałecki, Dariusz'
44         }),
45         ('mickiewicz_rybka.xml', {
46             'publisher': u'Fundacja Nowoczesna Polska',
47             'about': 'http://wiki.wolnepodreczniki.pl/Lektury:Mickiewicz/Ballady/Rybka',
48             'source_name': u'Mickiewicz, Adam (1798-1855), Poezje, tom 1 (Wiersze młodzieńcze - Ballady i romanse - Wiersze do r. 1824), Krakowska Spółdzielnia Wydawnicza, wyd. 2 zwiększone, Kraków, 1922',
49             'author': u'Mickiewicz, Adam',
50             'url': u'http://wolnelektury.pl/katalog/lektura/ballady-i-romanse-rybka',
51             'created_at': u'2007-09-06',
52             'title': u'Rybka',
53             'kind': u'Liryka',
54             'source_url': u'http://www.polona.pl/Content/2222',
55             'released_to_public_domain_at': u'1855-01-01',
56             'epoch': u'Romantyzm',
57             'genre': u'Ballada',
58             'technical_editor': u'Sutkowska, Olga'
59         }),
60         ('sofokles_antygona.xml', {
61             'publisher': u'Fundacja Nowoczesna Polska',
62             'about': 'http://wiki.wolnepodreczniki.pl/Lektury:Sofokles/Antygona',
63             'source_name': u'Sofokles (496-406 a.C.), Antygona, Zakład Narodowy im. Ossolińskich, wyd. 7, Lwów, 1939',
64             'author': u'Sofokles',
65             'url': u'http://wolnelektury.pl/katalog/lektura/antygona',
66             'created_at': u'2007-08-30',
67             'title': u'Antygona',
68             'kind': u'Dramat',
69             'source_url': u'http://www.polona.pl/Content/3768',
70             'translator': u'Morawski, Kazimierz',
71             'released_to_public_domain_at': u'1925-01-01',
72             'epoch': u'Starożytność',
73             'genre': u'Tragedia',
74             'technical_editor': u'Gałecki, Dariusz'
75         }),
76     )
77     
78     def test_parse(self):
79         for file_name, result in self.KNOWN_RESULTS:
80             self.assertEqual(dcparser.parse(test_file_path(file_name)).to_dict(), result)
81
82
83 if __name__ == '__main__':
84     unittest.main()