def test_import_page_image(self): root = get_default_site().root_page importer = PagesImporter('apie', 'apie') importer.set_up(root, fixture('image_fixture')) importer.import_all_items() # Test if Image objects where created. self.assertTrue( Image.objects.filter(title__in=( 'AKL Rumšiškėse', 'AKL steigiamasis susirinkimas (II)', )).exists()) # Test if HTML is replaced as intended. def imgid(title): return Image.objects.get(title=title).pk imgids = [ imgid('AKL Rumšiškėse'), imgid('AKL steigiamasis susirinkimas (II)'), ] page = StandardPage.objects.get(url_path='/home/apie/apie/') tags = [ m.group(0) for m in re.finditer(r'<(embed|img)\b[^>]+>', page.body) ] self.assertEqual(tags, [ '<embed alt="AKL Rumšiškėse" embedtype="image" format="left" id="%d"/>' % imgids[0], '<embed alt="AKL steigiamasis susirinkimas (II)" embedtype="image" format="right" id="%d"/>' % imgids[1], '<img src=\'http://wesnoth.org/start/1.10/images/start-1.jpg\' alt=\'Vesnoto ekranvaizdis\'/>', ])
def test_import_page_image(self): root = get_default_site().root_page importer = PagesImporter('apie', 'apie') importer.set_up(root, fixture('image_fixture')) importer.import_all_items() # Test if Image objects where created. self.assertTrue(Image.objects.filter(title__in=( 'AKL Rumšiškėse', 'AKL steigiamasis susirinkimas (II)', )).exists()) # Test if HTML is replaced as intended. def imgid(title): return Image.objects.get(title=title).pk imgids = [ imgid('AKL Rumšiškėse'), imgid('AKL steigiamasis susirinkimas (II)'), ] page = StandardPage.objects.get(url_path='/home/apie/apie/') tags = [ m.group(0) for m in re.finditer(r'<(embed|img)\b[^>]+>', page.body) ] self.assertEqual(tags, [ '<embed alt="AKL Rumšiškėse" embedtype="image" format="left" id="%d"/>' % imgids[0], '<embed alt="AKL steigiamasis susirinkimas (II)" embedtype="image" format="right" id="%d"/>' % imgids[1], '<img src=\'http://wesnoth.org/start/1.10/images/start-1.jpg\' alt=\'Vesnoto ekranvaizdis\'/>', ])
def test_document_import(self): root = get_default_site().root_page importer = PagesImporter('Skaitykla', 'skaitykla') importer.set_up(root, fixture('image_fixture')) importer.import_all_items() # Check if Document instances are created. self.assertTrue( Document.objects.filter(title__in=( 'Kazarinas-Technologijos-ir-etika.odt', '2007-03-17-Kazarinas-Laisvosios-programos-mokyme.odt', '2004-06-02_Seimas_atviri_standartai.pdf', 'AKP_naudojimo_patirtis_AM.pdf', )).exists()) # Check if HTML is replaced as intended. def docid(title): return Document.objects.get(title=title).pk docids = [ docid('Kazarinas-Technologijos-ir-etika.odt'), docid('2007-03-17-Kazarinas-Laisvosios-programos-mokyme.odt'), docid('2004-06-02_Seimas_atviri_standartai.pdf'), docid('AKP_naudojimo_patirtis_AM.pdf'), ] page = StandardPage.objects.get(url_path='/home/skaitykla/pranesimai/') self.assertEqual(re.findall(r'<a\b[^>]+>', page.body), [ '<a href="http://www.vac.lt/seminaras/">', '<a href="http://www.mruni.lt/">', '<a id="%d" linktype="document">' % docids[0], '<a href="http://discovery.ot.lt/linma/">', '<a id="%d" linktype="document">' % docids[1], '<a href="http://www.lrs.lt/">', '<a href="http://www.lrs.lt/ivpk">', '<a href="http://www3.lrs.lt/pls/inter/ivpk_print.doc_view?key=234334">', '<a id="%d" linktype="document">' % docids[2], '<a id="%d" linktype="document">' % docids[3], ])
def test(self): root = get_default_site().root_page importer = PagesImporter('Atviras kodas', 'ak') importer.set_up(root, fixture('whole_export')) importer.import_all_items() importer.post_process() page = StandardPage.objects.get(url_path='/home/ak/knygos/') links = list(lxml.html.fromstring(page.body).xpath('//a/@href')) self.assertEqual(links[0], '/ak/knygos/nuo_win_prie_lin/') self.assertEqual(links, [ '/ak/knygos/nuo_win_prie_lin/', '/ak/knygos/nuo_win_prie_lin/', '/ak/knygos/AKrinkinys/', '/ak/knygos/AKrinkinys/', '/ak/knygos/linuxatmintine/', '/ak/knygos/linuxatmintine/', '/ak/knygos/openoffice/', '/ak/knygos/openoffice/', '/ak/knygos/openoffice_atmintine/', '/ak/knygos/openoffice_atmintine/', '/ak/knygos/IT_vadovelis/', '/ak/knygos/IT_vadovelis/', '/ak/knygos/linux_sistemos_administravimas/', '/ak/knygos/linux_sistemos_administravimas/', '/ak/knygos/php4_vadovas/', '/ak/knygos/php4_vadovas/', '/ak/knygos/mysql4_vadovas/', '/ak/knygos/mysql4_vadovas/', '/ak/knygos/kde_atmintine/', '/ak/knygos/kde_atmintine/', 'http://www.kde.org', '/ak/knygos/grafine_aplinka_kde/', '/ak/knygos/grafine_aplinka_kde/', '/ak/knygos/cathedral_and_bazaar/', '/ak/knygos/cathedral_and_bazaar/', ])
def test_document_import(self): root = get_default_site().root_page importer = PagesImporter('Skaitykla', 'skaitykla') importer.set_up(root, fixture('image_fixture')) importer.import_all_items() # Check if Document instances are created. self.assertTrue(Document.objects.filter(title__in=( 'Kazarinas-Technologijos-ir-etika.odt', '2007-03-17-Kazarinas-Laisvosios-programos-mokyme.odt', '2004-06-02_Seimas_atviri_standartai.pdf', 'AKP_naudojimo_patirtis_AM.pdf', )).exists()) # Check if HTML is replaced as intended. def docid(title): return Document.objects.get(title=title).pk docids = [ docid('Kazarinas-Technologijos-ir-etika.odt'), docid('2007-03-17-Kazarinas-Laisvosios-programos-mokyme.odt'), docid('2004-06-02_Seimas_atviri_standartai.pdf'), docid('AKP_naudojimo_patirtis_AM.pdf'), ] page = StandardPage.objects.get(url_path='/home/skaitykla/pranesimai/') self.assertEqual(re.findall(r'<a\b[^>]+>', page.body), [ '<a href="http://www.vac.lt/seminaras/">', '<a href="http://www.mruni.lt/">', '<a id="%d" linktype="document">' % docids[0], '<a href="http://discovery.ot.lt/linma/">', '<a id="%d" linktype="document">' % docids[1], '<a href="http://www.lrs.lt/">', '<a href="http://www.lrs.lt/ivpk">', '<a href="http://www3.lrs.lt/pls/inter/ivpk_print.doc_view?key=234334">', '<a id="%d" linktype="document">' % docids[2], '<a id="%d" linktype="document">' % docids[3], ])
class PagesImporterTests(TestCase): def setUp(self): root = get_default_site().root_page self.importer = PagesImporter('Atviras kodas', 'ak') self.importer.set_up(root, fixture('whole_export')) def test_get_parent_page(self): self.importer.path /= 'ak' path = self.importer.path / 'atviri_standartai' def url_paths(): return sorted( list(self.importer.root.get_descendants().values_list( 'url_path', flat=True))) # Test situation when parent page does not exist self.importer.get_parent_page(path / 'atviri_standartai.zpt') self.assertEqual(url_paths(), ['/home/ak/atviri_standartai/']) # Test situation when parent page exists self.importer.get_parent_page(path / 'atviri_standartai.zpt') self.assertEqual(url_paths(), ['/home/ak/atviri_standartai/']) def test_iterate_paths(self): base = fixture('whole_export') paths = self.importer.iterate_paths() rel_paths = sorted([str(p.path.relative_to(base)) for p in paths]) self.assertEqual(rel_paths, [ 'ak/atviri_standartai.html', 'ak/atviri_standartai/atviri_standartai.zpt', 'ak/dokumentacija.html', 'ak/dokumentacija/jabber.html', 'ak/dokumentacija/vertimas.html', 'ak/floss.html', 'ak/free-sw.html', 'ak/knygos.html', 'ak/knygos/nuo_win_prie_lin.html', 'ak/laisve.zpt', 'ak/licencijos/apie.html', 'ak/licencijos/copyleft.html', 'ak/licencijos/gpl.html', 'ak/licencijos/kategorijos.html', 'ak/licencijos/lgpl.html', 'ak/osd.html', 'ak/sekme.html', ]) def test_parse_metadata(self): item = ImportItem(path=self.importer.path) data = self.importer.parse_metadata(item) self.assertEqual(data, { 'slug': 'ak', 'date': None, 'title': 'atviras kodas', 'body': '', }) def test_import(self): self.importer.import_all_items() root = get_root_page() pages = (Page.objects.descendant_of(root).values_list( 'url_path', 'title')) self.assertEqual(sorted(pages), [ ('/home/ak/', 'Atviras kodas'), ('/home/ak/atviri_standartai/', 'Atviri standartai'), ('/home/ak/atviri_standartai/atviri_standartai/', 'Atviri standartai, protokolai, formatai. Kodėl Lietuvai jų reikia?' ), ('/home/ak/dokumentacija/', 'Dokumentacija'), ('/home/ak/dokumentacija/jabber/', 'Jabber pokalbių sistemos pradžiamokslis'), ('/home/ak/dokumentacija/vertimas/', 'Vertimo pradžiamokslis'), ('/home/ak/floss/', 'Laisvos, atviro kodo programos'), ('/home/ak/free-sw/', 'Laisvoji programinė įranga'), ('/home/ak/knygos/', 'Knygos'), ('/home/ak/knygos/nuo_win_prie_lin/', 'Nuo Windows prie Linux'), ('/home/ak/laisve/', 'Apie laisvę'), ('/home/ak/licencijos/', 'licencijos'), ('/home/ak/licencijos/apie/', 'Laisvųjų programų licencijavimas'), ('/home/ak/licencijos/copyleft/', 'Kas yra Copyleft?'), ('/home/ak/licencijos/gpl/', 'GNU viešoji licencija'), ('/home/ak/licencijos/kategorijos/', 'PĮ kategorijos'), ('/home/ak/licencijos/lgpl/', 'GNU laisvoji viešoji licencija'), ('/home/ak/osd/', 'Atvirojo kodo apibrėžimas'), ('/home/ak/sekme/', 'Sėkmės istorijos'), ])
class PagesImporterTests(TestCase): def setUp(self): root = get_default_site().root_page self.importer = PagesImporter('Atviras kodas', 'ak') self.importer.set_up(root, fixture('whole_export')) def test_get_parent_page(self): self.importer.path /= 'ak' path = self.importer.path / 'atviri_standartai' def url_paths(): return sorted(list( self.importer.root.get_descendants(). values_list('url_path', flat=True) )) # Test situation when parent page does not exist self.importer.get_parent_page(path / 'atviri_standartai.zpt') self.assertEqual(url_paths(), ['/home/ak/atviri_standartai/']) # Test situation when parent page exists self.importer.get_parent_page(path / 'atviri_standartai.zpt') self.assertEqual(url_paths(), ['/home/ak/atviri_standartai/']) def test_iterate_paths(self): base = fixture('whole_export') paths = self.importer.iterate_paths() rel_paths = sorted([str(p.path.relative_to(base)) for p in paths]) self.assertEqual(rel_paths, [ 'ak/atviri_standartai.html', 'ak/atviri_standartai/atviri_standartai.zpt', 'ak/dokumentacija.html', 'ak/dokumentacija/jabber.html', 'ak/dokumentacija/vertimas.html', 'ak/floss.html', 'ak/free-sw.html', 'ak/knygos.html', 'ak/knygos/nuo_win_prie_lin.html', 'ak/laisve.zpt', 'ak/licencijos/apie.html', 'ak/licencijos/copyleft.html', 'ak/licencijos/gpl.html', 'ak/licencijos/kategorijos.html', 'ak/licencijos/lgpl.html', 'ak/osd.html', 'ak/sekme.html', ]) def test_parse_metadata(self): item = ImportItem(path=self.importer.path) data = self.importer.parse_metadata(item) self.assertEqual(data, { 'slug': 'ak', 'date': None, 'title': 'atviras kodas', 'body': '', }) def test_import(self): self.importer.import_all_items() root = get_root_page() pages = ( Page.objects.descendant_of(root).values_list('url_path', 'title') ) self.assertEqual(sorted(pages), [ ('/home/ak/', 'Atviras kodas'), ('/home/ak/atviri_standartai/', 'Atviri standartai'), ('/home/ak/atviri_standartai/atviri_standartai/', 'Atviri standartai, protokolai, formatai. Kodėl Lietuvai jų reikia?'), ('/home/ak/dokumentacija/', 'Dokumentacija'), ('/home/ak/dokumentacija/jabber/', 'Jabber pokalbių sistemos pradžiamokslis'), ('/home/ak/dokumentacija/vertimas/', 'Vertimo pradžiamokslis'), ('/home/ak/floss/', 'Laisvos, atviro kodo programos'), ('/home/ak/free-sw/', 'Laisvoji programinė įranga'), ('/home/ak/knygos/', 'Knygos'), ('/home/ak/knygos/nuo_win_prie_lin/', 'Nuo Windows prie Linux'), ('/home/ak/laisve/', 'Apie laisvę'), ('/home/ak/licencijos/', 'licencijos'), ('/home/ak/licencijos/apie/', 'Laisvųjų programų licencijavimas'), ('/home/ak/licencijos/copyleft/', 'Kas yra Copyleft?'), ('/home/ak/licencijos/gpl/', 'GNU viešoji licencija'), ('/home/ak/licencijos/kategorijos/', 'PĮ kategorijos'), ('/home/ak/licencijos/lgpl/', 'GNU laisvoji viešoji licencija'), ('/home/ak/osd/', 'Atvirojo kodo apibrėžimas'), ('/home/ak/sekme/', 'Sėkmės istorijos'), ])