openlp/tests/functional/openlp_core_lib/test_formattingtags.py

77 lines
2.9 KiB
Python
Raw Normal View History

"""
Package to test the openlp.core.lib.formattingtags package.
"""
2013-02-15 11:55:47 +00:00
import copy
from unittest import TestCase
from mock import patch
from openlp.core.lib import FormattingTags
2013-02-15 11:55:47 +00:00
class TestFormattingTags(TestCase):
2013-02-15 11:09:51 +00:00
def tearDown(self):
"""
Clean up the FormattingTags class.
"""
FormattingTags.html_expands = []
def get_html_tags_no_user_tags_test(self):
"""
Test the get_html_tags static method.
"""
with patch(u'openlp.core.lib.translate') as mocked_translate, \
patch(u'openlp.core.lib.settings') as mocked_settings, \
patch(u'openlp.core.lib.formattingtags.cPickle') as mocked_cPickle:
# GIVEN: Our mocked modules and functions.
2013-02-15 11:09:51 +00:00
mocked_translate.side_effect = lambda module, string_to_translate, comment: string_to_translate
mocked_settings.value.return_value = u''
mocked_cPickle.load.return_value = []
# WHEN: Get the display tags.
FormattingTags.load_tags()
2013-02-16 11:46:57 +00:00
old_tags_list = copy.deepcopy(FormattingTags.get_html_tags())
FormattingTags.load_tags()
new_tags_list = FormattingTags.get_html_tags()
# THEN: Lists should be identically.
assert old_tags_list == new_tags_list, u'The formatting tag lists should be identically.'
def get_html_tags_with_user_tags_test(self):
"""
Add a tag and check if it still exists after reloading the tags list.
"""
with patch(u'openlp.core.lib.translate') as mocked_translate, \
patch(u'openlp.core.lib.settings') as mocked_settings, \
patch(u'openlp.core.lib.formattingtags.cPickle') as mocked_cPickle:
# GIVEN: Our mocked modules and functions.
mocked_translate.side_effect = lambda module, string_to_translate: string_to_translate
mocked_settings.value.return_value = u''
2013-02-15 11:55:47 +00:00
tag = {
u'end tag': '{/aa}',
u'start html': '<span>',
u'start tag': '{aa}',
u'protected': False,
u'end html': '</span>',
2013-02-15 11:09:51 +00:00
u'desc': 'name'
2013-02-15 11:55:47 +00:00
}
mocked_cPickle.loads.side_effect = [[], [tag]]
# WHEN: Get the display tags.
FormattingTags.load_tags()
2013-02-15 11:55:47 +00:00
old_tags_list = copy.deepcopy(FormattingTags.get_html_tags())
2013-02-15 11:09:51 +00:00
2013-02-15 11:55:47 +00:00
# WHEN: Add our tag and get the tags again.
FormattingTags.load_tags()
2013-02-15 11:55:47 +00:00
FormattingTags.add_html_tags([tag])
new_tags_list = FormattingTags.get_html_tags()
2013-02-15 11:09:51 +00:00
# THEN: Lists should not be identically.
2013-02-15 11:55:47 +00:00
assert old_tags_list != new_tags_list, u'The lists should be different.'
2013-02-15 11:55:47 +00:00
# THEN: Added tag and last tag should be the same.
new_tag = new_tags_list.pop()
assert tag == new_tag, u'Tags should be identically.'