def test_superfluous_arguments(self): # ARRANGE # arbitrary_transformer_symbol = StringTransformerSymbolContext.of_arbitrary_value( 'TRANSFORMER_SYMBOL') src_file_relativity_conf = conf_rel_hds(RelHdsOptionType.REL_HDS_CASE) file_contents_builder = string_source_abs_stx.TransformableAbsStxBuilder( string_source_abs_stx.StringSourceOfFileAbsStx( src_file_relativity_conf.path_abs_stx_of_name('src-file.txt'))) file_contents_cases = [ NameAndValue('contents of existing file / without transformation', file_contents_builder.without_transformation()), NameAndValue( 'contents of existing file / with transformation', file_contents_builder.with_transformation( arbitrary_transformer_symbol.abstract_syntax)), ] for file_contents_case in file_contents_cases: valid_instruction_syntax = instr_abs_stx.create_w_explicit_contents( path_abs_stx.DefaultRelPathAbsStx('dst-file.txt'), file_contents_case.value, ) invalid_instruction_syntax = custom_abs_stx.SequenceAbsStx([ valid_instruction_syntax, custom_abs_stx.CustomAbstractSyntax.singleton( 'superfluous_argument') ]) with self.subTest(file_contents_variant=file_contents_case.name): # ACT & ASSERT # check_invalid_syntax__abs_stx(self, invalid_instruction_syntax)
def test_transformation_in_referenced_program_and_as_source_argument(self): # ARRANGE # valid_transformer = StringTransformerSymbolContext.of_arbitrary_value( 'VALID_TRANSFORMER', ) referenced_program__system_program = 'the-system-program' for validation_case in validation_cases.failing_validation_cases( 'INVALID_TRANSFORMER'): invalid_transformer_location_cases = [ ValidationCaseWAccumulation( 'in referenced program', of_referenced_program=validation_case.value.symbol_context, accumulated=valid_transformer, ), ValidationCaseWAccumulation( 'in referenced program', of_referenced_program=valid_transformer, accumulated=validation_case.value.symbol_context, ), ] for invalid_transformer_location_case in invalid_transformer_location_cases: referenced_program__sdv = program_sdvs.system_program( string_sdvs.str_constant( referenced_program__system_program), transformations=[ invalid_transformer_location_case. of_referenced_program.reference_sdv ]) referenced_program = ProgramSymbolContext.of_sdv( 'REFERENCED_PROGRAM', referenced_program__sdv) program_w_transformer = FullProgramAbsStx( ProgramOfSymbolReferenceAbsStx(referenced_program.name, ), transformation=invalid_transformer_location_case. accumulated.abstract_syntax, ) symbols__all = [ referenced_program, valid_transformer, validation_case.value.symbol_context, ] symbols__expected_references = [ referenced_program, invalid_transformer_location_case.accumulated ] with self.subTest(validation=validation_case.name, invalid_transformer_location= invalid_transformer_location_case.name): # ACT & ASSERT # CHECKER_WO_EXECUTION.check__abs_stx__layouts__source_variants__wo_input( self, equivalent_source_variants__for_expr_parse__s__nsc, program_w_transformer, arrangement_wo_tcds( symbols=SymbolContext.symbol_table_of_contexts( symbols__all), ), MultiSourceExpectation.of_const( symbol_references=SymbolContext. references_assertion_of_contexts( symbols__expected_references), execution=ExecutionExpectation( validation=validation_case.value.expectation, ), primitive=asrt.anything_goes(), ))