Page MenuHomec4science

test_super_page.py
No OneTemporary

File Metadata

Created
Sat, May 4, 05:44

test_super_page.py

import unittest
from os import sep, path
from os.path import isdir, isfile, dirname, basename
import lxml.etree as ET
import shutil
import sys
import tempfile
sys.path.append('svgscripts')
from datatypes.super_page import SuperPage
from datatypes.page import Page
from datatypes.faksimile_image import FaksimileImage
from datatypes.text_field import TextField
sys.path.append('shared_util')
from myxmlwriter import write_pretty
class TestSuperPage(unittest.TestCase):
def setUp(self):
DATADIR = dirname(__file__) + sep + 'test_data'
if not isdir(DATADIR):
DATADIR = dirname(dirname(__file__)) + sep + 'test_data'
self.test_file = DATADIR + sep + 'test.xml'
self.test_svg_file = DATADIR + sep + 'test421.svg'
self.pdf_xml = DATADIR + sep + 'W_I_8_page125.xml'
self.xml_file = DATADIR + sep + 'N_VII_1_page005.xml'
self.xml_fileB = DATADIR + sep + 'N_VII_1_page006.xml'
self.pdf_xml_source = DATADIR + sep + 'W_I_8_neu_125-01.svg'
self.test_tcm_xml = DATADIR + sep + 'N_VII_1_page001.xml'
self.test_manuscript = DATADIR + sep + 'N_VII_1.xml'
self.tmp_dir = tempfile.mkdtemp()
def test_init_property(self):
xml_file = self.tmp_dir + sep + 'asdf.xml'
sp = SuperPage(xml_file, title='test', page_number=1)
sp.init_property('title')
sp.init_property('number')
self.assertEqual(sp.title, 'test')
self.assertEqual(sp.number, '1')
text_field = TextField()
image = FaksimileImage(file_name='test.jpg', height=10, width=20, text_field=text_field)
sp.init_property('faksimile_image', value=image)
write_pretty(xml_element_tree=sp.page_tree, file_name=xml_file, script_name='test', file_type=SuperPage.FILE_TYPE_SVG_WORD_POSITION)
sp = SuperPage(xml_file)
sp._init_tree()
#print(ET.dump(sp.page_tree.getroot()))
sp.init_property('title')
sp.init_property('number')
self.assertEqual(sp.title, 'test')
self.assertEqual(sp.number, '1')
sp.init_property('faksimile_image')
self.assertEqual(sp.faksimile_image.file_name, 'test.jpg')
self.assertEqual(sp.faksimile_image.text_field.id, '0')
sp.init_property('text_field')
self.assertEqual(sp.text_field.id, '0')
image = FaksimileImage(file_name='asdf.jpg')
sp.init_property('title', value='asdf', overwrite=True)
sp.init_property('number', value=2, overwrite=True)
sp.init_property('faksimile_image', value=image, overwrite=True)
self.assertEqual(sp.title, 'asdf')
self.assertEqual(sp.number, '2')
self.assertEqual(sp.faksimile_image.file_name, 'asdf.jpg')
def test_init_property2(self):
xml_file = self.tmp_dir + sep + 'asdf.xml'
sp = SuperPage(xml_file, title='test', page_number=1)
sp.init_all_properties()
self.assertEqual(sp.title, 'test')
self.assertEqual(sp.number, '1')
self.assertEqual(sp.faksimile_image, None)
self.assertEqual(sp.svg_image, None)
self.assertEqual(sp.multipage_index, -1)
def test_init_tree(self):
sp = SuperPage('asdf.xml', title='test', page_number=1)
self.assertEqual(sp.xml_file, 'asdf.xml')
with self.assertRaises(Exception):
sp = SuperPage(self.test_manuscript, title='test', page_number=1)
sp = SuperPage('asdf.xml', title='test', page_number=1)
with self.assertRaises(Exception):
sp.init_tree(should_exist=True)
def test_update_property_dictionary(self):
xml_file = self.tmp_dir + sep + 'asdf.xml'
sp = SuperPage(xml_file, title='test', page_number=1)
sp.update_property_dictionary('title', 'Hello World')
sp.init_property('title')
self.assertEqual(sp.title, 'Hello World')
def test_get_line_number(self):
page = Page(self.test_file)
self.assertEqual(page.get_line_number( (page.words[0].transkription_positions[0].bottom+page.words[0].transkription_positions[0].top)/2), 1)
self.assertEqual(page.get_line_number( (page.words[27].transkription_positions[0].bottom+page.words[27].transkription_positions[0].top)/2), 2)
self.assertEqual(page.get_line_number( (page.words[105].transkription_positions[0].bottom+page.words[105].transkription_positions[0].top)/2), 7)
def tearDown(self):
shutil.rmtree(self.tmp_dir, ignore_errors=True)
if __name__ == "__main__":
unittest.main()

Event Timeline