Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F62954564
test_page.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, May 16, 18:24
Size
7 KB
Mime Type
text/x-python
Expires
Sat, May 18, 18:24 (2 d)
Engine
blob
Format
Raw Data
Handle
17712057
Attached To
rNIETZSCHEPYTHON nietzsche-python
test_page.py
View Options
import
unittest
from
os
import
sep
,
path
from
os.path
import
isdir
,
isfile
,
dirname
,
basename
import
lxml.etree
as
ET
import
sys
import
sys
sys
.
path
.
append
(
'svgscripts'
)
dir_changed
=
False
if
not
isdir
(
'datatypes'
):
sys
.
path
.
append
(
dirname
(
sys
.
path
[
0
]))
dir_changed
=
True
from
datatypes.lineNumber
import
LineNumber
from
datatypes.mark_foreign_hands
import
MarkForeignHands
from
datatypes.page
import
Page
,
STATUS_MERGED_OK
,
STATUS_POSTMERGED_OK
from
datatypes.path
import
Path
from
datatypes.text_connection_mark
import
TextConnectionMark
from
datatypes.transkriptionField
import
TranskriptionField
from
datatypes.style
import
Style
from
datatypes.writing_process
import
WritingProcess
from
datatypes.word
import
Word
class
TestPage
(
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
.
test_styles_color
=
DATADIR
+
sep
+
'N_VII_1_page013.xml'
def
test_Page
(
self
):
page
=
Page
(
self
.
test_file
)
self
.
assertEqual
(
page
.
title
,
'Mp XIV 1'
)
self
.
assertEqual
(
page
.
number
,
'421'
)
self
.
assertEqual
(
len
(
page
.
sonderzeichen_list
),
2
)
self
.
assertEqual
(
'st21'
in
page
.
sonderzeichen_list
,
True
)
self
.
assertEqual
(
'st23'
in
page
.
sonderzeichen_list
,
True
)
self
.
assertEqual
(
page
.
style_dict
[
'st0'
][
'fill'
],
'#F8F9F8'
)
stage0
=
[
key
for
key
,
value
in
page
.
fontsizekey2stage_mapping
.
items
()
if
value
==
0
]
stage1
=
[
key
for
key
,
value
in
page
.
fontsizekey2stage_mapping
.
items
()
if
value
==
1
]
stage2
=
[
key
for
key
,
value
in
page
.
fontsizekey2stage_mapping
.
items
()
if
value
==
2
]
fontStage0
=
float
(
page
.
style_dict
.
get
(
stage0
[
0
])
.
get
(
'font-size'
)
.
replace
(
'px'
,
''
))
fontStage1
=
float
(
page
.
style_dict
.
get
(
stage1
[
0
])
.
get
(
'font-size'
)
.
replace
(
'px'
,
''
))
fontStage2
=
float
(
page
.
style_dict
.
get
(
stage2
[
0
])
.
get
(
'font-size'
)
.
replace
(
'px'
,
''
))
self
.
assertEqual
(
fontStage0
>
fontStage1
,
True
)
self
.
assertEqual
(
fontStage1
>
fontStage2
,
True
)
page
=
Page
.
create_cls
(
self
.
test_tcm_xml
,
create_dummy_page
=
True
)
self
.
assertEqual
(
page
.
number
,
'1'
)
def
test_get_biggest_fontSize4styles
(
self
):
page
=
Page
(
self
.
test_file
)
style_set
=
{
'st12'
,
'st2'
,
'st14'
,
'st13'
}
self
.
assertEqual
(
page
.
get_biggest_fontSize4styles
(
style_set
=
style_set
),
10
)
def
test_get_words
(
self
):
page
=
Page
(
self
.
test_file
)
words
=
page
.
words
self
.
assertEqual
(
len
(
words
),
440
)
self
.
assertEqual
(
words
[
0
]
.
text
,
'$'
)
self
.
assertEqual
(
words
[
439
]
.
text
,
'mußte!'
)
def
test_update_page_type
(
self
):
page
=
Page
(
self
.
pdf_xml
)
tf
=
TranskriptionField
(
self
.
pdf_xml_source
)
page
.
update_page_type
(
transkription_field
=
tf
)
self
.
assertEqual
(
page
.
page_type
,
Page
.
PAGE_VERSO
)
#page = Page(self.xml_fileB)
#page.update_page_type()
#self.assertEqual(page.page_type, Page.PAGE_RECTO)
def
test_update_line_number_area
(
self
):
page
=
Page
(
self
.
xml_file
)
transkription_field
=
TranskriptionField
(
page
.
source
)
page
.
update_line_number_area
(
transkription_field
)
self
.
assertEqual
(
transkription_field
.
line_number_area_width
>
0
,
True
)
self
.
assertEqual
(
transkription_field
.
line_number_area_width
<
15
,
True
)
page
=
Page
(
self
.
xml_fileB
)
transkription_field
=
TranskriptionField
(
page
.
source
)
page
.
update_line_number_area
(
transkription_field
)
self
.
assertEqual
(
transkription_field
.
line_number_area_width
>
0
,
True
)
self
.
assertEqual
(
transkription_field
.
line_number_area_width
<
15
,
True
)
def
test_get_pages_from_xml_file
(
self
):
pages
=
Page
.
get_pages_from_xml_file
(
self
.
test_manuscript
)
self
.
assertEqual
(
len
(
pages
),
4
)
self
.
assertEqual
(
pages
[
0
]
.
number
,
'5'
)
self
.
assertEqual
(
pages
[
1
]
.
number
,
'6'
)
pages
=
Page
.
get_pages_from_xml_file
(
self
.
test_manuscript
,
status_contains
=
STATUS_MERGED_OK
)
self
.
assertEqual
(
len
(
pages
),
2
)
self
.
assertEqual
(
pages
[
0
]
.
number
,
'5'
)
pages
=
Page
.
get_pages_from_xml_file
(
self
.
test_manuscript
,
status_contains
=
STATUS_MERGED_OK
,
status_not_contain
=
STATUS_POSTMERGED_OK
)
self
.
assertEqual
(
len
(
pages
),
1
)
def
test_get_semantic_dictionary
(
self
):
dictionary
=
Page
.
get_semantic_dictionary
()
#print(dictionary)
def
test_update_styles
(
self
):
page
=
Page
(
self
.
pdf_xml
)
page
.
words
=
[
word
for
word
in
page
.
words
if
word
.
text
==
'Schopenhauer'
]
page
.
update_styles
(
add_to_parents
=
True
)
self
.
assertEqual
(
len
(
page
.
words
[
0
]
.
styles
),
1
)
self
.
assertEqual
(
page
.
words
[
0
]
.
styles
[
0
]
.
color
.
name
,
'black'
)
self
.
assertEqual
(
page
.
words
[
0
]
.
styles
[
0
]
.
font
,
Style
.
NIETSCHES_FONTS
[
'latin'
])
self
.
assertEqual
(
page
.
words
[
0
]
.
styles
[
0
]
.
writing_instrument
,
Style
.
WRITING_INSTRUMENTS
[(
'black'
,
False
)])
page
=
Page
(
self
.
test_styles_color
)
page
.
words
=
[
word
for
word
in
page
.
words
if
word
.
text
==
'Versöhnlichkeit'
]
page
.
update_styles
(
add_to_parents
=
True
)
self
.
assertEqual
(
len
(
page
.
words
[
0
]
.
styles
),
1
)
self
.
assertEqual
(
page
.
words
[
0
]
.
styles
[
0
]
.
color
.
name
,
'green'
)
self
.
assertEqual
(
page
.
words
[
0
]
.
styles
[
0
]
.
font
,
Style
.
NIETSCHES_FONTS
[
'german'
])
self
.
assertEqual
(
page
.
words
[
0
]
.
styles
[
0
]
.
writing_instrument
,
Style
.
WRITING_INSTRUMENTS
[(
'green'
,
False
)])
self
.
assertEqual
(
page
.
words
[
0
]
.
styles
[
0
]
.
writing_process_id
,
WritingProcess
.
INSERTION_AND_ADDITION
)
page
=
Page
(
self
.
test_styles_color
)
page
.
words
=
[
word
for
word
in
page
.
words
if
word
.
text
==
'Versöhnlichkeit'
or
word
.
text
==
'gewisse'
]
self
.
assertEqual
(
len
(
page
.
words
),
2
)
word
=
page
.
words
[
0
]
word
.
transkription_positions
+=
page
.
words
[
1
]
.
transkription_positions
page
.
words
=
[
word
]
page
.
update_styles
(
add_to_parents
=
True
,
partition_according_to_styles
=
True
)
self
.
assertEqual
(
len
(
page
.
words
[
0
]
.
word_parts
),
2
)
page
=
Page
(
self
.
test_styles_color
)
page
.
update_styles
(
add_to_parents
=
True
,
create_css
=
True
)
for
word
in
page
.
words
:
self
.
assertTrue
(
len
(
word
.
styles
)
>
0
)
for
style
in
word
.
styles
:
self
.
assertTrue
(
len
(
style
.
css_styles
)
>
0
)
def
test_lock
(
self
):
page
=
Page
(
self
.
test_tcm_xml
)
self
.
assertEqual
(
page
.
is_locked
(),
False
)
page
.
lock
(
'asdf.txt'
)
self
.
assertEqual
(
page
.
is_locked
(),
True
)
self
.
assertEqual
(
page
.
page_tree
.
xpath
(
'//lock/reference-file/text()'
)[
0
],
'asdf.txt'
)
page
.
unlock
()
self
.
assertEqual
(
page
.
is_locked
(),
False
)
if
__name__
==
"__main__"
:
unittest
.
main
()
Event Timeline
Log In to Comment