A search engine for MMP's eASLRB.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
asl-rulebook2/asl_rulebook2/webapp/tests/test_annotations.py

79 lines
2.6 KiB

""" Test annotations. """
from asl_rulebook2.webapp.tests.utils import init_webapp, \
find_child, find_children, wait_for_elem, check_sr_filters
from asl_rulebook2.webapp.tests.test_search import do_search, unload_elem
# ---------------------------------------------------------------------
def test_full_errata( webapp, webdriver ):
"""Test handling of an errata that has everything."""
# initialize
webapp.control_tests.set_data_dir( "annotations" )
init_webapp( webapp, webdriver )
check_sr_filters( [ "index", "errata" ] )
# bring up the errata and check it in the search results
results = do_search( "erratum" )
expected = {
"sr_type": "anno",
"caption": "E1",
"icon": "errata.png",
"content": "This is a test ((erratum)).",
"source": "Test Fixture"
}
assert len(results) == 1
result = results[0]
assert result == expected
# bring up the errata in the rule info popup and check it there
find_child( "#search-results .auto-ruleid" ).click()
anno = _unload_rule_info_anno()
expected = {
"caption": "E1",
"icon": "errata.png",
"content": "This is a test erratum.",
"source": "Test Fixture"
}
assert anno == expected
# ---------------------------------------------------------------------
def test_empty_errata( webapp, webdriver ):
"""Test handling of an errata that has nothing in it."""
# initialize
webapp.control_tests.set_data_dir( "annotations" )
init_webapp( webapp, webdriver )
# bring up the errata amd check it in the rule info popup
do_search( "empty" )
anno = _unload_rule_info_anno()
expected = {
"caption": "E0",
"icon": "errata.png",
}
assert anno == expected
# ---------------------------------------------------------------------
def unload_anno( anno_elem ):
"""Unload an annotation from the UI."""
anno = {}
unload_elem( anno, "caption", find_child(".caption",anno_elem), adjust_hilites=True )
unload_elem( anno, "content", find_child(".content",anno_elem), adjust_hilites=True )
img = find_child( "img.icon", anno_elem )
unload_elem( anno, "icon", img )
source = img.get_attribute( "title" )
if source:
anno["source"] = source
return anno
def _unload_rule_info_anno():
"""Unload an annotation from the rule info popup."""
popup = wait_for_elem( 2, "#rule-info" )
assert popup
elems = find_children( ".anno", popup )
assert len(elems) == 1 # nb: we assume there's only 1 annotation
return unload_anno( elems[0] )