def test_successful_sequence(self):
     phase_contents = SectionContents((
         new_instruction_element(Line(1, '1'),
                                 TestInstruction('First instruction')),
         new_comment_element(Line(2, '2')),
         new_instruction_element(Line(3, '3'),
                                 TestInstruction('Second instruction')),
         new_comment_element(Line(4, '4')),
         new_comment_element(Line(50, '50')),
         new_instruction_element(Line(60, '60'),
                                 TestInstruction('Third instruction')),
         new_instruction_element(Line(70, '70'),
                                 TestInstruction('Fourth instruction')),
         new_comment_element(Line(80, '80')),
     ))
     self._standard_test_with_successful_instruction_executor(
         phase_contents, asrt_failure.is_not_present(), [
             'instruction header for source line number: 1',
             'instruction executor: First instruction',
             'comment header for source line number: 2',
             'instruction header for source line number: 3',
             'instruction executor: Second instruction',
             'comment header for source line number: 4',
             'comment header for source line number: 50',
             'instruction header for source line number: 60',
             'instruction executor: Third instruction',
             'instruction header for source line number: 70',
             'instruction executor: Fourth instruction',
             'comment header for source line number: 80',
         ])
 def test_middle_instruction_fails(self):
     recording_media = RecordingMedia()
     instruction_executor = InstructionExecutorThatRecordsInstructionNameAndFailsFor(
         instruction_with_name('Middle instruction'),
         recording_media.new_recorder_with_header('instruction executor'),
         PartialInstructionControlledFailureInfo(
             PartialControlledFailureEnum.FAIL,
             asrt_text_doc.new_single_string_text_for_test('fail message')))
     phase_contents = SectionContents((
         new_instruction_element(Line(1, '1'),
                                 TestInstruction('First instruction')),
         new_instruction_element(Line(2, '2'),
                                 TestInstruction('Middle instruction')),
         new_instruction_element(Line(3, '3'),
                                 TestInstruction('Last instruction')),
     ))
     self._standard_test(
         recording_media, phase_contents, instruction_executor,
         asrt_failure.is_present_with(
             ExecutionFailureStatus.FAIL,
             equals_single_line_source_location_path(Line(2, '2')),
             asrt_failure_details.is_failure_message_of('fail message')), [
                 'instruction header for source line number: 1',
                 'instruction executor: First instruction',
                 'instruction header for source line number: 2',
                 'instruction executor: Middle instruction',
             ])
 def test_last_instruction_fails(self):
     recording_media = RecordingMedia()
     instruction_executor = InstructionExecutorThatRecordsInstructionNameAndFailsFor(
         instruction_with_name('Last instruction'),
         recording_media.new_recorder_with_header('instruction executor'),
         PartialInstructionControlledFailureInfo(PartialControlledFailureEnum.FAIL,
                                                 'fail message')
     )
     phase_contents = SectionContents((new_instruction_element(Line(1, '1'),
                                                               TestInstruction('First instruction')),
                                       new_instruction_element(Line(2, '2'),
                                                               TestInstruction('Last instruction'))
                                       ))
     self._standard_test(
         recording_media,
         phase_contents,
         instruction_executor,
         asrt_failure.is_present_with(PartialExeResultStatus.FAIL,
                                      equals_single_line_source_location_path(Line(2, '2')),
                                      asrt_failure_details.is_failure_message_of('fail message')),
         ['instruction header for source line number: 1',
          'instruction executor: First instruction',
          'instruction header for source line number: 2',
          'instruction executor: Last instruction',
          ])
 def test_successful_execution_of_single_instruction(self):
     phase_contents = SectionContents(
         (new_instruction_element(Line(1, '1'),
                                  TestInstruction('The instruction')), ))
     self._standard_test_with_successful_instruction_executor(
         phase_contents, asrt_failure.is_not_present(), [
             'instruction header for source line number: 1',
             'instruction executor: The instruction'
         ])
 def test_successful_execution_of_single_instruction(self):
     phase_contents = SectionContents((new_instruction_element(Line(1, '1'),
                                                               TestInstruction('The instruction')),
                                       ))
     self._standard_test_with_successful_instruction_executor(
         phase_contents,
         asrt_failure.is_not_present(),
         ['instruction header for source line number: 1',
          'instruction executor: The instruction'])
    def test_successful_sequence(self):
        phase_contents = SectionContents((new_instruction_element(Line(1, '1'),
                                                                  TestInstruction('First instruction')),
                                          new_comment_element(Line(2, '2')),
                                          new_instruction_element(Line(3, '3'),
                                                                  TestInstruction('Second instruction')),
                                          new_comment_element(Line(4, '4')),
                                          new_comment_element(Line(50, '50')),
                                          new_instruction_element(Line(60, '60'),
                                                                  TestInstruction('Third instruction')),
                                          new_instruction_element(Line(70, '70'),
                                                                  TestInstruction('Fourth instruction')),
                                          new_comment_element(Line(80, '80')),
                                          ))
        self._standard_test_with_successful_instruction_executor(
            phase_contents,
            asrt_failure.is_not_present(),
            ['instruction header for source line number: 1',
             'instruction executor: First instruction',

             'comment header for source line number: 2',

             'instruction header for source line number: 3',
             'instruction executor: Second instruction',

             'comment header for source line number: 4',

             'comment header for source line number: 50',

             'instruction header for source line number: 60',
             'instruction executor: Third instruction',

             'instruction header for source line number: 70',
             'instruction executor: Fourth instruction',

             'comment header for source line number: 80',
             ])
 def test_single_exception_raising_instruction_executor(self):
     recording_media = RecordingMedia()
     instruction_executor = InstructionExecutorThatRecordsInstructionNameAndRaisesExceptionFor(
         any_instruction,
         recording_media.new_recorder_with_header('instruction executor'),
         TestException())
     phase_contents = SectionContents(
         (new_instruction_element(Line(1, '1'),
                                  TestInstruction('The instruction')), ))
     self._standard_test(
         recording_media, phase_contents, instruction_executor,
         asrt_failure.is_present_with(
             ExecutionFailureStatus.INTERNAL_ERROR,
             equals_single_line_source_location_path(Line(1, '1')),
             asrt_failure_details.is_exception_of_type(TestException)), [
                 'instruction header for source line number: 1',
                 'instruction executor: The instruction'
             ])
 def test_single_exception_raising_instruction_executor(self):
     recording_media = RecordingMedia()
     instruction_executor = InstructionExecutorThatRecordsInstructionNameAndRaisesExceptionFor(
         any_instruction,
         recording_media.new_recorder_with_header('instruction executor'),
         TestException()
     )
     phase_contents = SectionContents((new_instruction_element(Line(1, '1'),
                                                               TestInstruction('The instruction')),
                                       ))
     self._standard_test(
         recording_media,
         phase_contents,
         instruction_executor,
         asrt_failure.is_present_with(PartialExeResultStatus.IMPLEMENTATION_ERROR,
                                      equals_single_line_source_location_path(Line(1, '1')),
                                      asrt_failure_details.is_exception(TestException)),
         ['instruction header for source line number: 1',
          'instruction executor: The instruction'])
 def test_single_failing_instruction_executor__status_hard_error(self):
     recording_media = RecordingMedia()
     instruction_executor = InstructionExecutorThatRecordsInstructionNameAndFailsFor(
         any_instruction,
         recording_media.new_recorder_with_header('instruction executor'),
         PartialInstructionControlledFailureInfo(PartialControlledFailureEnum.HARD_ERROR,
                                                 'hard error message')
     )
     phase_contents = SectionContents((new_instruction_element(Line(1, '1'),
                                                               TestInstruction('The instruction')),
                                       ))
     self._standard_test(
         recording_media,
         phase_contents,
         instruction_executor,
         asrt_failure.is_present_with(PartialExeResultStatus.HARD_ERROR,
                                      equals_single_line_source_location_path(Line(1, '1')),
                                      asrt_failure_details.is_failure_message_of('hard error message')),
         ['instruction header for source line number: 1',
          'instruction executor: The instruction'])
 def test_single_failing_instruction_executor__status_hard_error(self):
     recording_media = RecordingMedia()
     instruction_executor = InstructionExecutorThatRecordsInstructionNameAndFailsFor(
         any_instruction,
         recording_media.new_recorder_with_header('instruction executor'),
         PartialInstructionControlledFailureInfo(
             PartialControlledFailureEnum.HARD_ERROR,
             asrt_text_doc.new_single_string_text_for_test(
                 'hard error message')))
     phase_contents = SectionContents(
         (new_instruction_element(Line(1, '1'),
                                  TestInstruction('The instruction')), ))
     self._standard_test(
         recording_media, phase_contents, instruction_executor,
         asrt_failure.is_present_with(
             ExecutionFailureStatus.HARD_ERROR,
             equals_single_line_source_location_path(Line(1, '1')),
             asrt_failure_details.is_failure_message_of(
                 'hard error message')), [
                     'instruction header for source line number: 1',
                     'instruction executor: The instruction'
                 ])
 def apply(self, instruction: TestCaseInstruction) -> model.SectionContentElement:
     return elements.new_instruction_element(
         self.lines_generator.next_line(),
         instruction)
Beispiel #12
0
 def apply(self,
           instruction: TestCaseInstruction) -> model.SectionContentElement:
     return elements.new_instruction_element(
         self.lines_generator.next_line(), instruction)