def runTest(self): # ARRANGE # files_matcher_name = 'the_files_matcher' checked_dir_location = RelOptionType.REL_ACT checked_dir = Dir.empty('checked-dir') matcher_argument = SymbolReferenceArgument(files_matcher_name).as_str tcds = TcdsArrangementPostAct( TcdsPopulatorForRelOptionType(checked_dir_location, DirContents([checked_dir]))) source_cases = [ NameAndValue( 'All arguments on separate lines', Arguments(checked_dir.name, [ reserved_words.COLON, args.RECURSION_OPTION_STR, matcher_argument ]), ), NameAndValue( 'Empty lines between arguments', Arguments(checked_dir.name, [ '', reserved_words.COLON, '', args.RECURSION_OPTION_STR, '', matcher_argument, ]), ), ] execution_cases = [ NExArr( 'matcher gives ' + str(matcher_result), ExecutionExpectation( main_result=asrt_pfh.is_non_hard_error(matcher_result)), ArrangementPostAct2( tcds, symbols=FilesMatcherSymbolContext.of_primitive_constant( files_matcher_name, matcher_result).symbol_table)) for matcher_result in [False, True] ] # ACT & ASSERT # for source_case in source_cases: with self.subTest(source_case=source_case.name): INSTRUCTION_CHECKER.check_multi__with_source_variants( self, SourceArrangement.new_w_arbitrary_fs_location( source_case.value), symbol_usages=asrt.matches_singleton_sequence( is_reference_to_files_matcher__usage( files_matcher_name)), execution=execution_cases, )
def test_w_selection(self): # ARRANGE # helper = files_matcher_integration.NumFilesWFileTypeSelectionTestCaseHelper( fm_tr.MODEL_CONTENTS__RECURSIVE__SELECTION_TYPE_FILE, RelOptionType.REL_ACT, 'checked-dir', ) # ACT & ASSERT # INSTRUCTION_CHECKER.check_multi__with_source_variants( self, SourceArrangement.new_w_arbitrary_fs_location( helper.argument__recursive().as_arguments), symbol_usages=asrt.is_empty_sequence, execution=helper.execution_cases())
def runTest(self): # ARRANGE # helper = ValidationHelper() arguments = args.recursive( helper.path_argument(), helper.files_matcher_reference_argument(), ) # ACT & ASSERT # INSTRUCTION_CHECKER.check_multi__with_source_variants( self, SourceArrangement.new_w_arbitrary_fs_location( arguments.as_arguments), symbol_usages=helper.expected_symbol_usages(), execution=helper.execution_cases(), )
def execute_multi(self, put: unittest.TestCase, generator: MultipleExecutionCasesGenerator): INSTRUCTION_CHECKER.check_multi( put, source=SourceArrangement.new_w_arbitrary_fs_location( _arguments(generator.model_file, generator.arguments()).as_arguments), parse_expectation=ParseExpectation( symbol_usages=_symbol_usages_assertion( generator.expected_symbols())), execution=[ NExArr( case.name, _execution_expectation_of(case.expected), ArrangementPostAct2( tcds=_mk_tcds_arrangement_post_act( case.arrangement.tcds), symbols=case.arrangement.symbols, ), ) for case in generator.execution_cases() ], )
arguments = args.recursive( RelOptPathArgument(checked_dir_name, checked_dir_location), SymbolReferenceArgument(model_checker_symbol_name), ) contents_cases = test_data.strip_file_type_info_s([ test_data.identical_expected_and_actual(case.name, case.value) for case in test_data.cases() ]) # ACT & ASSERT # INSTRUCTION_CHECKER.check_multi( self, SourceArrangement.new_w_arbitrary_fs_location( arguments.as_arguments), ParseExpectation(symbol_usages=asrt.matches_singleton_sequence( is_reference_to_files_matcher__usage( model_checker_symbol_name))), execution=[ NExArr( contents_case.name, ExecutionExpectation(), ArrangementPostAct2( tcds=TcdsArrangementPostAct( tcds_contents=tcds_populators. TcdsPopulatorForRelOptionType( checked_dir_location, DirContents([ Dir(checked_dir_name, contents_case.actual) ]))),