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))), )
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))
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()), ), )
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)), )
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()), ), )
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), ), ) )
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)), ))
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)), ))
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 ], )
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, ), ))