|
|
|
import pytest
|
|
|
|
from calculate.templates.format.base_format import Format
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.base
|
|
|
|
class TestJoinMethod:
|
|
|
|
def test_if_inputs_are_dictionaries_with_string_keys_without_any_action_marks__the_dictionaties_just_merged(self, StringDictionaries):
|
|
|
|
BaseObject = Format([])
|
|
|
|
Original, Template, Result = StringDictionaries
|
|
|
|
BaseObject._join(Original, Template, join_before=False)
|
|
|
|
assert Original == Result
|
|
|
|
|
|
|
|
def test_if_inputs_are_dictionaries_with_tuple_keys_without_any_action_marks_as_their_keys__the_dictionaries_just_merged(self, TupleDictionaries):
|
|
|
|
BaseObject = Format([])
|
|
|
|
Original, Template, Result = TupleDictionaries
|
|
|
|
BaseObject._join(Original, Template, join_before=False)
|
|
|
|
assert Original == Result
|
|
|
|
|
|
|
|
def test_if_inputs_are_dictionaries_with_same_sections_which_contain_different_parameters__a_section_from_the_template_added_to_the_same_section_of_original_dictionary(self, MergeSectionDictionaries):
|
|
|
|
BaseObject = Format([])
|
|
|
|
Original, Template, Result = MergeSectionDictionaries
|
|
|
|
BaseObject._join(Original, Template, join_before=False)
|
|
|
|
assert Original == Result
|
|
|
|
|
|
|
|
def test_if_inputs_are_dictionaries_with_parameters_with_same_name_in_same_section__parameters_values_in_original_dictionary_changed_to_values_from_template(self, ChangeParameterDictionaries):
|
|
|
|
BaseObject = Format([])
|
|
|
|
Original, Template, Result = ChangeParameterDictionaries
|
|
|
|
BaseObject._join(Original, Template, join_before=False)
|
|
|
|
assert Original == Result
|
|
|
|
|
|
|
|
def test_if_input_template_dictionary_has_delete_mark_for_section__section_will_be_deleted(self, DeleteSectionDictionaries):
|
|
|
|
BaseObject = Format([])
|
|
|
|
Original, Template, Result = DeleteSectionDictionaries
|
|
|
|
BaseObject._join(Original, Template, join_before=False)
|
|
|
|
assert Original == Result
|
|
|
|
|
|
|
|
def test_if_input_template_dictionary_has_replace_mark_for_section__section_will_be_deleted(self, ReplaceSectionDictionaries):
|
|
|
|
BaseObject = Format([])
|
|
|
|
Original, Template, Result = ReplaceSectionDictionaries
|
|
|
|
BaseObject._join(Original, Template, join_before=False)
|
|
|
|
assert Original == Result
|
|
|
|
|
|
|
|
def test_if_input_template_dictionary_has_delete_mark_for_parameter__parameter_will_be_deleted(self, DeleteParameterDictionaries):
|
|
|
|
BaseObject = Format([])
|
|
|
|
Original, Template, Result = DeleteParameterDictionaries
|
|
|
|
BaseObject._join(Original, Template, join_before=False)
|
|
|
|
assert Original == Result
|
|
|
|
|
|
|
|
def test_if_input_dictionaries_have_no_sections_and_have_only_parameter_lines__it_will_be_processed_correctly(self, DictionariesWithoutSections):
|
|
|
|
BaseObject = Format([])
|
|
|
|
Original, Template, Result = DictionariesWithoutSections
|
|
|
|
BaseObject._join(Original, Template, join_before=False)
|
|
|
|
assert Original == Result
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.base
|
|
|
|
class TestLogicLinesMethod:
|
|
|
|
def test_if_input_is_text_document_the_method_returns_list_of_its_lines(self):
|
|
|
|
with open('./tests/templates/format/testfiles/base/'
|
|
|
|
'logic_lines_test.txt', 'r') as InputFile:
|
|
|
|
InputText = InputFile.read()
|
|
|
|
|
|
|
|
processingMethods = []
|
|
|
|
OutputLines = ['First string of test file.',
|
|
|
|
'Second string of test file.',
|
|
|
|
'Third string of test file.',
|
|
|
|
'Fourth string of test file.']
|
|
|
|
|
|
|
|
BaseObject = Format(processingMethods)
|
|
|
|
InputLines = BaseObject._get_list_of_logic_lines(InputText)
|
|
|
|
assert InputLines == OutputLines
|
|
|
|
|
|
|
|
def test_if_lines_in_document_divided_using_backslash_as_continuation_symbol__method_returns_list_of_full_lines(self):
|
|
|
|
with open('./tests/templates/format/testfiles/base/'
|
|
|
|
'logic_lines_test_input.txt', 'r') as InputFile:
|
|
|
|
InputText = InputFile.read()
|
|
|
|
|
|
|
|
with open('./tests/templates/format/testfiles/base/'
|
|
|
|
'logic_lines_test_output.txt', 'r') as OutputFile:
|
|
|
|
OutputText = OutputFile.read()
|
|
|
|
|
|
|
|
BaseObject = Format([])
|
|
|
|
InputLines = BaseObject._get_list_of_logic_lines(InputText)
|
|
|
|
OutputLines = BaseObject._get_list_of_logic_lines(OutputText)
|
|
|
|
assert InputLines == OutputLines
|