Пример #1
0
 def runTest(self):
     invalid_int_expr = range_args.SingleLineRange('1.5')
     valid_int_expr = range_args.SingleLineRange('1')
     range_expression_cases = [
         [invalid_int_expr, valid_int_expr, valid_int_expr],
         [valid_int_expr, invalid_int_expr, valid_int_expr],
         [valid_int_expr, valid_int_expr, invalid_int_expr],
     ]
     for range_expressions in range_expression_cases:
         with self.subTest([str(r) for r in range_expressions]):
             integration_check.CHECKER__PARSE_SIMPLE.check(
                 self,
                 args.filter_line_nums__multi(
                     range_expressions).as_remaining_source,
                 model_constructor.arbitrary(self), arrangement_wo_tcds(),
                 Expectation(
                     ParseExpectation(),
                     ExecutionExpectation(validation=ValidationAssertions.
                                          pre_sds_fails__w_any_msg(), ),
                 ))
Пример #2
0
    def runTest(self):
        # ARRANGE #
        input_lines = ['1\n', '2\n', '3\n']
        single_range_1_symbol = StringIntConstantSymbolContext(
            'RANGE_SYMBOL_1',
            1,
            default_restrictions=IS_RANGE_EXPR_STR_REFERENCE_RESTRICTIONS,
        )
        single_range_2_symbol = StringIntConstantSymbolContext(
            'RANGE_SYMBOL_2',
            3,
            default_restrictions=IS_RANGE_EXPR_STR_REFERENCE_RESTRICTIONS,
        )
        symbols = [single_range_1_symbol, single_range_2_symbol]

        expected_output_lines = [
            input_lines[single_range_1_symbol.int_value - 1],
            input_lines[single_range_2_symbol.int_value - 1]
        ]

        arguments = args.filter_line_nums__multi([
            range_args.SingleLineRange(
                single_range_1_symbol.name__sym_ref_syntax),
            range_args.SingleLineRange(
                single_range_2_symbol.name__sym_ref_syntax),
        ])
        integration_check.CHECKER__PARSE_SIMPLE.check__w_source_variants_for_full_line_parser_2(
            self, arguments.as_arguments,
            model_constructor.of_lines(self,
                                       input_lines,
                                       may_depend_on_external_resources=False),
            arrangement_w_tcds(
                symbols=SymbolContext.symbol_table_of_contexts(symbols), ),
            integration_check.expectation_of_successful_execution_2(
                symbol_references=SymbolContext.
                references_assertion_of_contexts(symbols),
                output_lines=expected_output_lines,
                may_depend_on_external_resources=False,
                is_identity_transformer=False,
            ))
Пример #3
0
 def as_arg(self) -> Range:
     return ab.SingleLineRange(str(self.line_number))
Пример #4
0
def single_line_arguments(int_expr: WithToString) -> ArgumentElementsRenderer:
    return args.filter_line_nums(range_args.SingleLineRange(str(int_expr)))