Beispiel #1
0
    def runTest(self):
        unconditionally_constant_true = FilesMatcherSymbolContext.of_primitive_constant(
            'unconditionally_constant_true', True)
        symbols = unconditionally_constant_true.symbol_table

        location = RelSdsOptionType.REL_TMP
        model_file_name = 'the-checked-file'

        integration_check.CHECKER__PARSE_FULL.check_multi__w_source_variants(
            self,
            arguments=args.DirContents(
                args.SymbolReference(
                    unconditionally_constant_true.name)).as_arguments,
            symbol_references=asrt.matches_singleton_sequence(
                unconditionally_constant_true.reference_assertion),
            input_=integration_check.file_in_sds(location, model_file_name),
            execution=[
                NExArr(
                    invalid_file_case.name,
                    PrimAndExeExpectation.of_exe(
                        is_hard_error=asrt_renderer.
                        is_renderer_of_major_blocks()),
                    arrangement_w_tcds(
                        symbols=symbols,
                        non_hds_contents=sds_populator.contents_in(
                            location, invalid_file_case.value)))
                for invalid_file_case in invalid_model.cases(model_file_name)
            ])
    def runTest(self):
        var_name = 'TEST_VAR_' + str(random.getrandbits(32))
        var_value = str(random.getrandbits(32))

        environ = {var_name: var_value}
        py_pgm_file = File(
            'check-env.py',
            py_programs.
            pgm_that_exists_with_zero_exit_code_iff_environment_vars_not_included(
                environ))
        source = source4(py_pgm_file.name)

        execution_setup_parser = _SetupParserForExecutingPythonSourceFileRelAct(
        )
        instruction_name = 'name-of-the-instruction'
        self.conf.run_sub_process_test(
            self,
            source,
            execution_setup_parser,
            self.conf.arrangement(
                environ=environ,
                sds_contents_before_main=sds_populator.contents_in(
                    RelSdsOptionType.REL_ACT,
                    DirContents([py_pgm_file]),
                )),
            self.conf.expect_success(),
            instruction_name=instruction_name)
Beispiel #3
0
 def test_argument_is_file(self):
     self._check_argument(
         'existing-file',
         sds_test.Arrangement(sds_contents_before=contents_in(
             RelSdsOptionType.REL_ACT,
             DirContents([File.empty('existing-file')]))),
         sds_test.Expectation(expected_action_result=is_failure()))
Beispiel #4
0
    def runTest(self):
        # ARRANGE #

        files_matcher_name = 'the_files_matcher'
        checked_dir_location = RelSdsOptionType.REL_TMP
        checked_dir = Dir.empty('checked-dir')

        # ACT & ASSERT #

        integration_check.CHECKER__PARSE_FULL.check_multi__w_source_variants(
            self,
            arguments=args.DirContents(
                fsm_args.SymbolReference(files_matcher_name)).as_arguments,
            input_=integration_check.file_in_sds(checked_dir_location,
                                                 checked_dir.name),
            symbol_references=asrt.matches_singleton_sequence(
                is_reference_to_files_matcher(files_matcher_name)),
            execution=[
                NExArr(
                    'checked dir is empty',
                    PrimAndExeExpectation.of_exe(
                        main_result=asrt_matching_result.matches_value(
                            matcher_result)),
                    arrangement_w_tcds(
                        non_hds_contents=sds_populator.contents_in(
                            checked_dir_location, DirContents([checked_dir])),
                        symbols=FilesMatcherSymbolContext.
                        of_primitive_constant(files_matcher_name,
                                              matcher_result).symbol_table,
                    ),
                ) for matcher_result in [False, True]
            ],
        )
 def _populate_act_dir(self, act_environment: ActEnvironment):
     actual_contents = self.tcds_2_str(act_environment.tcds)
     sds_pop = sds_populator.contents_in(RelSdsOptionType.REL_ACT,
                                         DirContents([
                                             File(self.file_name, actual_contents)
                                         ]))
     sds_pop.populate_sds(act_environment.tcds.sds)
 def populator_for_relativity_option_root__sds(
         self, contents: DirContents) -> sds_populator.SdsPopulator:
     if self.relativity_non_hds is RelNonHdsOptionType.REL_CWD:
         return sds_populator.cwd_contents(contents)
     else:
         relativity_sds = RelSdsOptionType(self.relativity_non_hds.value)
         return sds_populator.contents_in(relativity_sds, contents)
 def runTest(self):
     self.conf.run_single_line_test_with_source_variants_and_source_check(
         self, 'file',
         self.conf.
         arrangement(sds_contents_before_main=sds_populator.contents_in(
             RelSdsOptionType.REL_ACT, DirContents([File.empty('file')]))),
         self.conf.expect_target_is_not_a_directory())
Beispiel #8
0
 def runTest(self):
     self.conf.run_test(
         self,
         source_for_interpreting(RelOptionType.REL_TMP, 'existing-file.py'),
         self.conf.arrangement(sds_contents_before_main=contents_in(
             RelSdsOptionType.REL_TMP,
             DirContents([File.empty('existing-file.py')]))),
         self.conf.expect_success(),
     )
Beispiel #9
0
 def arrangement(self) -> Arrangement:
     return arrangement_w_tcds(
         non_hds_contents=sds_populator.contents_in(
             self.checked_dir_location,
             DirContents([Dir.empty(self.checked_dir_name)])),
         symbols=FilesMatcherSymbolContext.of_primitive(
             self.files_matcher_name,
             matchers.MatcherThatReportsHardError(
                 self.error_message)).symbol_table,
     )
Beispiel #10
0
 def test_relative_tmp__with_argument(self):
     self._check_argument(
         format_rel_options('{rel_tmp} sub1/sub2'),
         sds_test.Arrangement(sds_contents_before=contents_in(
             RelSdsOptionType.REL_TMP,
             DirContents([Dir('sub1', [Dir.empty('sub2')])]))),
         sds_test.Expectation(
             expected_action_result=is_success(),
             post_action_check=CwdIs(
                 lambda sds: sds.user_tmp_dir / 'sub1' / 'sub2')))
Beispiel #11
0
 def test_relative_argument_should_change_dir_relative_to_cwd__from_act_dir(
         self):
     self._check_argument(
         'existing-dir',
         sds_test.Arrangement(sds_contents_before=contents_in(
             RelSdsOptionType.REL_ACT,
             DirContents([Dir.empty('existing-dir')]))),
         sds_test.Expectation(
             expected_action_result=is_success(),
             post_action_check=CwdIs(
                 lambda sds: sds.act_dir / 'existing-dir')))
Beispiel #12
0
 def test_single_dot_argument_should_have_no_effect(self):
     self._check_argument(
         '.',
         sds_test.Arrangement(pre_action_action=ChangeDirTo(
             lambda sds: sds.act_dir / 'sub-dir'),
                              sds_contents_before=contents_in(
                                  RelSdsOptionType.REL_ACT,
                                  DirContents([Dir.empty('sub-dir')]))),
         sds_test.Expectation(
             expected_action_result=is_success(),
             post_action_check=CwdIs(lambda sds: sds.act_dir / 'sub-dir')))
Beispiel #13
0
 def test_populate_sds(self):
     populated_dir_contents = DirContents([File.empty('sds-file.txt')])
     self._check(
         PARSER_THAT_GIVES_SUCCESSFUL_INSTRUCTION,
         utils.single_line_source(),
         sut.Arrangement(sds_contents_before_main=sds_populator.contents_in(
             sds_populator.RelSdsOptionType.REL_TMP,
             populated_dir_contents)),
         sut.Expectation(
             main_side_effects_on_sds=tmp_user_dir_contains_exactly(
                 populated_dir_contents)),
     )
Beispiel #14
0
 def test_populate_sds(self):
     populated_dir_contents = DirContents([File.empty('sds-file.txt')])
     self._check_source_and_exe_variants(
         PARSER_THAT_GIVES_SUCCESSFUL_INSTRUCTION,
         Arrangement.phase_agnostic(
             tcds=TcdsArrangement(
                 sds_contents=sds_populator.contents_in(RelSdsOptionType.REL_RESULT,
                                                        populated_dir_contents)),
         ),
         MultiSourceExpectation.phase_agnostic(
             main_side_effects_on_sds=result_dir_contains_exactly(
                 populated_dir_contents)),
     )
 def runTest(self):
     self.conf.run_single_line_test_with_source_variants_and_source_check(
         self, 'first-component/second-component',
         self.conf.arrangement(
             sds_contents_before_main=sds_populator.contents_in(
                 RelSdsOptionType.REL_ACT,
                 DirContents([
                     Dir('first-component', [Dir.empty('second-component')])
                 ]))),
         self.conf.expect_successful_execution_with_side_effect(
             AssertCwdIsSubDirOf(
                 RelOptionType.REL_ACT,
                 pathlib.Path('first-component') / 'second-component')))
Beispiel #16
0
 def test_relative_argument_should_change_dir_relative_to_cwd__from_tmp_dir(
         self):
     self._check_argument(
         'sub1/sub2',
         sds_test.Arrangement(
             sds_contents_before=contents_in(
                 RelSdsOptionType.REL_TMP,
                 DirContents([Dir('sub1', [Dir.empty('sub2')])])),
             pre_action_action=ChangeDirTo(lambda sds: sds.user_tmp_dir)),
         sds_test.Expectation(
             expected_action_result=is_success(),
             post_action_check=CwdIs(
                 lambda sds: sds.user_tmp_dir / 'sub1' / 'sub2')))
Beispiel #17
0
 def test_check_zero_exit_code__rel_tmp(self):
     self._check_single_line_arguments_with_source_variants(
         args.sequence([
             pgm_args.interpret_py_source_file(
                 path_arguments.RelOptPathArgument('exit-with-value-on-command-line.py',
                                                   RelOptionType.REL_TMP)),
             0,
         ]).as_str,
         tcds_test.Arrangement(
             sds_contents_before=contents_in(RelSdsOptionType.REL_TMP,
                                             DirContents([
                                                 File('exit-with-value-on-command-line.py',
                                                      py_pgm_that_exits_with_1st_value_on_command_line(''))]))),
         tcds_test.Expectation(
             expected_action_result=result_assertions.equals(0, None)),
     )
 def populator_for_relativity_option_root__sds(
         self, contents: DirContents) -> sds_populator.SdsPopulator:
     return sds_populator.contents_in(self.relativity_sds, contents)