def runTest(self): # ARRANGE # name_of_referenced_symbol = 'FILE_MATCHER_WITH_VALIDATION_FAILURE' selection_is_empty_arguments = fsm_args.Selection( fm_args2.SymbolReference(name_of_referenced_symbol), args.Empty()) for case in validation_cases.failing_validation_cases( name_of_referenced_symbol): symbol_context = case.value.symbol_context selection_is_empty_source = selection_is_empty_arguments.as_remaining_source # ACT & ASSERT # with self.subTest(case.name): integration_check.CHECKER__PARSE_FULL.check( self, selection_is_empty_source, model.arbitrary_model(), arrangement_w_tcds(symbols=symbol_context.symbol_table, ), Expectation( ParseExpectation(symbol_references=symbol_context. references_assertion, ), ExecutionExpectation( validation=case.value.expectation, ), ), )
def arguments(self) -> FileMatcherArg: return _as_arguments( RecWLimArguments( fms_args.Selection(fm_args.Type(FileType.REGULAR), self.num_files_setup.num_files_arg()), self.min_depth, self.max_depth, ))
def runTest(self): # ARRANGE # model_contents = DirContents( [File.empty('a file making the model non-empty')]) file_matcher = FileMatcherSymbolContextOfPrimitiveConstant( 'FILE_MATCHER_SYMBOL', True, ) files_matcher__parsed = FilesMatcherSymbolContext.of_primitive( 'FILES_MATCHER_1', files_matcher_test_impl.FilesMatcherNumFilesTestImpl( len(model_contents.file_system_elements))) symbols = [file_matcher, files_matcher__parsed] files_matcher_bin_op_expr = args.conjunction([ fm_args2.SymbolReferenceWReferenceSyntax( files_matcher__parsed.name), args.Custom('after bin op'), ]) arguments = fsm_args.Selection( fm_args2.SymbolReferenceWReferenceSyntax(file_matcher.name), files_matcher_bin_op_expr, ) model_rel_opt_conf = rel_opt_confs.conf_rel_any(RelOptionType.REL_ACT) # ACT & ASSERT # integration_check.CHECKER__PARSE_SIMPLE.check( self, arguments.as_remaining_source, model.model_with_rel_root_as_source_path(model_rel_opt_conf), arrangement_w_tcds( symbols=SymbolContext.symbol_table_of_contexts(symbols), tcds_contents=model_rel_opt_conf. populator_for_relativity_option_root(model_contents)), Expectation( ParseExpectation( source=asrt_source.is_at_line( current_line_number=1, remaining_part_of_current_line=' '.join([ files_matcher_bin_op_expr.operator, files_matcher_bin_op_expr.operands[1].as_str, ])), symbol_references=SymbolContext. references_assertion_of_contexts(symbols), ), ExecutionExpectation( main_result=matcher_assertions.is_matching_success(), ), ), )
def runTest(self): # ARRANGE # file_matcher_argument = fm_args2.conjunction([ fm_args2.SymbolReferenceWReferenceSyntax('FILE_MATCHER_SYMBOL_1'), fm_args2.SymbolReferenceWReferenceSyntax('FILE_MATCHER_SYMBOL_2'), ], ) files_matcher_argument = args.Empty() arguments = args.Selection(file_matcher_argument, files_matcher_argument) for top_level_parser_case in TOP_LEVEL_PARSER_CASES: with self.subTest(top_level_parser_case.name): # ACT & ASSERT # with self.assertRaises( SingleInstructionInvalidArgumentException): top_level_parser_case.value.parse( arguments.as_remaining_source)
def runTest(self): # ARRANGE # helper = IntegrationCheckHelper() argument_cases = [ NIE( 'prune followed by selection', input_value=fsm_args.Prune( fm_args.SymbolReference(NAME_STARTS_WITH__P1.name), fsm_args.Selection( fm_args.SymbolReference(NAME_STARTS_WITH__S1.name), helper.files_matcher_sym_ref_arg(), ), ), expected_value=asrt.matches_sequence([ NAME_STARTS_WITH__P1.reference_assertion, NAME_STARTS_WITH__S1.reference_assertion, helper.symbol_reference_assertion, ]), ), NIE( 'selection followed by prune', input_value=fsm_args.Selection( fm_args.SymbolReference(NAME_STARTS_WITH__S1.name), fsm_args.Prune( fm_args.SymbolReference(NAME_STARTS_WITH__P1.name), helper.files_matcher_sym_ref_arg(), ), ), expected_value=asrt.matches_sequence([ NAME_STARTS_WITH__S1.reference_assertion, NAME_STARTS_WITH__P1.reference_assertion, helper.symbol_reference_assertion, ]), ), ] contents_case = COMBINATION_OF_PRUNE_AND_SELECTION # ACT & ASSERT # for argument_case in argument_cases: with self.subTest(argument_case.name): integration_check.CHECKER__PARSE_FULL.check__w_source_variants( self, arguments=argument_case.input_value.as_arguments, input_=helper.model_constructor_for_checked_dir__recursive( ), arrangement=helper.arrangement_for_contents_of_model( checked_dir_contents=contents_case.actual, files_matcher_symbol_value=model_checker.matcher( self, helper.dir_arg.path_sdv, contents_case.expected, ), additional_symbols=[ NAME_STARTS_WITH__P1, NAME_STARTS_WITH__S1, ], ), expectation=Expectation( ParseExpectation( symbol_references=argument_case.expected_value, )), )
def arguments(self) -> FileMatcherArg: return self._mk_arguments_from_selection( fms_args.Selection(fm_args.Type(self._type_to_detect), self._helper.files_matcher_sym_ref_arg()))
def arg__non_recursive(self) -> FileMatcherArg: return fm_args.DirContents( fms_args.Selection(fm_args.Type(FileType.REGULAR), self.setup.num_files_arg()))