Beispiel #1
0
    def runTest(self):
        checked_file = File.empty('checked-file.txt')

        string_matcher = StringMatcherSymbolContextOfPrimitiveConstant(
            'STRING_MATCHER',
            True,
        )
        after_bin_op = 'after bin op'
        integration_check.CHECKER__PARSE_SIMPLE.check(
            self,
            source=fm_args.FileContents(
                sm_args2.conjunction([
                    sm_args2.SymbolReference(string_matcher.name),
                    sm_args2.Custom(after_bin_op),
                ]), ).as_remaining_source,
            input_=integration_check.constant_relative_file_name(
                checked_file.name),
            arrangement=arrangement_w_tcds(
                symbols=string_matcher.symbol_table,
                tcds_contents=tcds_populators.in_tc_dir(
                    RelOptionType.REL_ACT, DirContents([checked_file]))),
            expectation=Expectation(
                ParseExpectation(
                    source=asrt_source.is_at_line(
                        current_line_number=1,
                        remaining_part_of_current_line=logic.AND_OPERATOR_NAME
                        + ' ' + after_bin_op),
                    symbol_references=string_matcher.references_assertion),
                ExecutionExpectation(
                    main_result=asrt_matching_result.matches_value(
                        string_matcher.result_value))),
        )
Beispiel #2
0
 def runTest(self):
     fsm_symbol_name = 'the_files_matcher'
     integration_check.CHECKER__PARSE_FULL.check_multi__w_source_variants(
         self,
         args.DirContents(
             args.SymbolReference(fsm_symbol_name)).as_arguments,
         symbol_references=asrt.matches_singleton_sequence(
             is_reference_to_files_matcher(fsm_symbol_name)),
         input_=integration_check.constant_relative_file_name(
             'arbitrary-file-argument'),
         execution=instruction_validation_cases.
         failing_validation_cases__multi_exe(fsm_symbol_name))
Beispiel #3
0
 def _doTest(self, maybe_not: ExpectationTypeConfigForNoneIsSuccess):
     self._check(
         source=source_for(
             sm_args.args('{maybe_not} {empty}',
                          maybe_not=maybe_not.
                          nothing__if_positive__not_option__if_negative)),
         model_constructor=integration_check.constant_relative_file_name(
             'non-existing.txt'),
         arrangement=arrangement_w_tcds(),
         expectation=Expectation(execution=ExecutionExpectation(
             is_hard_error=asrt.anything_goes()), ),
     )
Beispiel #4
0
    def _doTest(self, maybe_not: ExpectationTypeConfigForNoneIsSuccess):
        checked_file = File.empty('actual.txt')

        self._check_with_source_variants(
            arguments=arguments_for(
                sm_args.args('{maybe_not} {empty}',
                             maybe_not=maybe_not.
                             nothing__if_positive__not_option__if_negative)),
            model_constructor=integration_check.constant_relative_file_name(
                checked_file.name),
            arrangement=arrangement_w_tcds(
                non_hds_contents=single_file_in_current_dir(checked_file)),
            expectation=Expectation(execution=ExecutionExpectation(
                main_result=maybe_not.pass__if_positive__fail__if_negative)),
        )
Beispiel #5
0
    def _doTest(self, maybe_not: ExpectationTypeConfigForNoneIsSuccess):
        checked_file = Dir.empty('a-dir')

        self._check(
            source=source_for(
                sm_args.args('{maybe_not} {empty}',
                             maybe_not=maybe_not.
                             nothing__if_positive__not_option__if_negative)),
            model_constructor=integration_check.constant_relative_file_name(
                checked_file.name),
            arrangement=arrangement_w_tcds(
                non_hds_contents=single_file_in_current_dir(checked_file)),
            expectation=Expectation(execution=ExecutionExpectation(
                is_hard_error=asrt.anything_goes()), ),
        )
Beispiel #6
0
    def _check(self,
               file_type_to_check_for: FileType,
               expected_result: bool,
               base_name_of_file_to_check: str,
               dir_contents: DirContents):

        # ACT #
        integration_check.CHECKER__PARSE_FULL.check__w_source_variants(
            self,
            ArgumentElements(arg.Type(file_type_to_check_for).elements).as_arguments,
            integration_check.constant_relative_file_name(base_name_of_file_to_check),
            arrangement_w_tcds(
                non_hds_contents=non_hds_populator.rel_option(RelNonHdsOptionType.REL_CWD, dir_contents),
            ),
            Expectation(
                execution=ExecutionExpectation(
                    main_result=asrt_matching_result.matches_value(expected_result),
                ),
            )
        )
Beispiel #7
0
 def runTest(self):
     any_char_regex_string_symbol = StringSymbolContext.of_constant(
         'valid_regex_string_symbol',
         '.',
     )
     arguments = name_matches_regex_args(
         'AB' + any_char_regex_string_symbol.name__sym_ref_syntax)
     self._check_with_source_variants(
         arguments=arguments,
         model_constructor=integration_check.constant_relative_file_name(
             'ABC'),
         arrangement=arrangement_w_tcds(
             symbols=any_char_regex_string_symbol.symbol_table),
         expectation=Expectation(
             ParseExpectation(symbol_references=asrt.matches_sequence([
                 is_reference_to__regex_string_part(
                     any_char_regex_string_symbol.name),
             ]), ),
             ExecutionExpectation(
                 main_result=asrt_matching_result.matches_value(True)),
         ))
Beispiel #8
0
    def runTest(self):
        any_char_glob_pattern_string_symbol = StringSymbolContext.of_constant(
            'glob_pattern_string_symbol', '*')
        arguments = arg.Name(
            arg.NameGlobPatternVariant(
                'AB' +
                any_char_glob_pattern_string_symbol.name__sym_ref_syntax))

        integration_check.CHECKER__PARSE_FULL.check__w_source_variants(
            self,
            arguments=arguments.as_arguments,
            input_=integration_check.constant_relative_file_name('ABC'),
            arrangement=arrangement_w_tcds(
                symbols=any_char_glob_pattern_string_symbol.symbol_table),
            expectation=Expectation(
                ParseExpectation(symbol_references=asrt.matches_sequence([
                    is_reference_to__regex_string_part(
                        any_char_glob_pattern_string_symbol.name),
                ]), ),
                ExecutionExpectation(
                    main_result=asrt_matching_result.matches_value(True)),
            ))
Beispiel #9
0
def _check(
        put: unittest.TestCase,
        arg_pos_option: PathArgumentPositionArgument,
        command_line_arguments_cases: List[List[str]],
        expected_arg_list: Callable[[List[str], str], List[str]],
):
    # ARRANGE #

    program_symbol_name = 'PROGRAM_THAT_EXECUTES_PY_FILE'
    command_line_arg_list_symbol_name = 'COMMAND_LINE_ARGUMENTS_LIST'

    model_file_path = 'the-file-to-match'

    # ACT && ASSERT #

    integration_check.CHECKER__PARSE_FULL.check_multi__w_source_variants_for_full_line_parser(
        put,
        args.RunProgram(
            program_args.symbol_ref_command_elements(
                program_symbol_name,
                arguments=[symbol_reference_syntax_for_name(command_line_arg_list_symbol_name)],
            ),
            arg_pos_option,
        ).as_arguments,
        input_=integration_check.constant_relative_file_name(model_file_path),
        symbol_references=asrt.matches_sequence([
            is_reference_to_program(program_symbol_name),
            is_reference_to__w_str_rendering(command_line_arg_list_symbol_name),
        ]),
        execution=[
            test_cases.argument_list_exe_case(
                command_line_arguments,
                expected_arg_list(command_line_arguments, model_file_path),
                program_symbol_name,
                command_line_arg_list_symbol_name)
            for command_line_arguments in command_line_arguments_cases
        ],
    )
Beispiel #10
0
    def _doTest(self, maybe_not: ExpectationTypeConfigForNoneIsSuccess):
        # ARRANGE #

        named_transformer = StringTransformerSymbolContext.of_primitive(
            'the_transformer', every_line_empty())

        checked_file = File('actual.txt', 'some\ntext')

        symbols = named_transformer.symbol_table

        expected_symbol_reference_to_transformer = is_reference_to_string_transformer(
            named_transformer.name)

        expected_symbol_usages = asrt.matches_sequence(
            [expected_symbol_reference_to_transformer])

        # ACT & ASSERT #

        self._check_with_source_variants(
            arguments=arguments_for(
                sm_args.args(
                    '{transform_option} {the_transformer} {maybe_not} {empty}',
                    the_transformer=named_transformer.name,
                    maybe_not=maybe_not.
                    nothing__if_positive__not_option__if_negative)),
            model_constructor=integration_check.constant_relative_file_name(
                checked_file.name),
            arrangement=arrangement_w_tcds(
                non_hds_contents=single_file_in_current_dir(checked_file),
                symbols=symbols,
            ),
            expectation=Expectation(
                ParseExpectation(symbol_references=expected_symbol_usages),
                ExecutionExpectation(
                    main_result=maybe_not.pass__if_positive__fail__if_negative,
                ),
            ))