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