コード例 #1
0
ファイル: recursive.py プロジェクト: emilkarlen/exactly
    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,
                )
コード例 #2
0
ファイル: recursive.py プロジェクト: emilkarlen/exactly
 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())
コード例 #3
0
ファイル: recursive.py プロジェクト: emilkarlen/exactly
    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(),
        )
コード例 #4
0
 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()
         ],
     )
コード例 #5
0
ファイル: recursive.py プロジェクト: emilkarlen/exactly
        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)
                                ]))),