c9b7f4c0666ecc6c28d552f3a846b326e28f70fc
[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             'license_description': u'Domena publiczna - tłumacz Cecylia Niewiadomska zm. 1925',
30         }),
31         ('kochanowski_piesn7.xml', {
32             'publisher': u'Fundacja Nowoczesna Polska',
33             'about': u'http://wiki.wolnepodreczniki.pl/Lektury:Kochanowski/Pieśni/Pieśń_VII_(1)',
34             'source_name': u'Kochanowski, Jan (1530-1584), Dzieła polskie, tom 1, oprac. Julian Krzyżanowski, wyd. 8, Państwowy Instytut Wydawniczy, Warszawa, 1976',
35             'author': u'Kochanowski, Jan',
36             'url': u'http://wolnelektury.pl/katalog/lektura/piesni-ksiegi-pierwsze-piesn-vii-trudna-rada-w-tej-mierze-pr',
37             'created_at': u'2007-08-31',
38             'title': u'Pieśń VII (Trudna rada w tej mierze: przyjdzie się rozjechać...)',
39             'kind': u'Liryka',
40             'source_url': u'http://www.polona.pl/Content/1499',
41             'released_to_public_domain_at': u'1584-01-01',
42             'epoch': u'Renesans',
43             'genre': u'Pieśń',
44             'technical_editor': u'Gałecki, Dariusz',
45             'license_description': u'Domena publiczna - Jan Kochanowski zm. 1584 ',
46         }),
47         ('mickiewicz_rybka.xml', {
48             'publisher': u'Fundacja Nowoczesna Polska',
49             'about': 'http://wiki.wolnepodreczniki.pl/Lektury:Mickiewicz/Ballady/Rybka',
50             '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',
51             'author': u'Mickiewicz, Adam',
52             'url': u'http://wolnelektury.pl/katalog/lektura/ballady-i-romanse-rybka',
53             'created_at': u'2007-09-06',
54             'title': u'Rybka',
55             'kind': u'Liryka',
56             'source_url': u'http://www.polona.pl/Content/2222',
57             'released_to_public_domain_at': u'1855-01-01',
58             'epoch': u'Romantyzm',
59             'genre': u'Ballada',
60             'technical_editor': u'Sutkowska, Olga',
61             'license_description': u'Domena publiczna - Adam Mickiewicz zm. 1855',
62         }),
63         ('sofokles_antygona.xml', {
64             'publisher': u'Fundacja Nowoczesna Polska',
65             'about': 'http://wiki.wolnepodreczniki.pl/Lektury:Sofokles/Antygona',
66             'source_name': u'Sofokles (496-406 a.C.), Antygona, Zakład Narodowy im. Ossolińskich, wyd. 7, Lwów, 1939',
67             'author': u'Sofokles',
68             'url': u'http://wolnelektury.pl/katalog/lektura/antygona',
69             'created_at': u'2007-08-30',
70             'title': u'Antygona',
71             'kind': u'Dramat',
72             'source_url': u'http://www.polona.pl/Content/3768',
73             'translator': u'Morawski, Kazimierz',
74             'released_to_public_domain_at': u'1925-01-01',
75             'epoch': u'Starożytność',
76             'genre': u'Tragedia',
77             'technical_editor': u'Gałecki, Dariusz',
78             'license_description': u'Domena publiczna - tłumacz Kazimierz Morawski zm. 1925',
79         }),
80         ('biedrzycki_akslop.xml', {
81             'publisher': u'Fundacja Nowoczesna Polska',
82             'about': 'http://wiki.wolnepodreczniki.pl/Lektury:Biedrzycki/Akslop',
83             'source_name': u'Miłosz Biedrzycki, * ("Gwiazdka"), Fundacja "brulion", Kraków-Warszawa, 1993',
84             'author': u'Biedrzycki, Miłosz',
85             'url': u'http://wolnelektury.pl/katalog/lektura/akslop',
86             'created_at': u'2009-06-04',
87             'title': u'Akslop',
88             'kind': u'Liryka',
89             'source_url': u'http://free.art.pl/mlb/gwiazdka.html#t1',
90             'epoch': u'Współczesność',
91             'genre': u'Wiersz',
92             'technical_editor': u'Sutkowska, Olga',
93             'license': u'http://creativecommons.org/licenses/by-sa/3.0/',
94             'license_description': u'Creative Commons Uznanie Autorstwa - Na Tych Samych Warunkach 3.0.PL'
95         }),
96     )
97     
98     def test_parse(self):
99         for file_name, result in self.KNOWN_RESULTS:
100             self.assertEqual(dcparser.parse(test_file_path(file_name)).to_dict(), result)
101
102
103 if __name__ == '__main__':
104     unittest.main()