def test_wo_transformation(self): # ARRANGE # cases: List[NameAndValue[Case]] = [ NameAndValue('string', _string_case(_no_transformation)), NameAndValue('string-source', _string_source_case(_no_transformation)), ] for case in cases: # ACT & ASSERT # CHECKER.check__abs_stx__layouts__std_source_variants__wo_input( self, case.value.syntax, arrangement_w_tcds(symbols=case.value.symbol.symbol_table, ), MultiSourceExpectation.of_prim( symbol_references=asrt.matches_singleton_sequence( references.is_reference_to__string_source_or_string( case.value.symbol.name)), primitive=case.value.expectation_of_primitive, ), sub_test_identifiers={ 'case': case.name, })
def test_w_transformation(self): str_added_by_transformer = '<string added by transformer>' transformer_symbol = StringTransformerSymbolContext.of_primitive( 'TRANSFORMER', string_transformers.add(str_added_by_transformer), ) def contents_transformation(s: str) -> str: return s + str_added_by_transformer # ARRANGE # cases: List[NameAndValue[Case]] = [ NameAndValue('path (within soft quotes)', _path_case(contents_transformation)), NameAndValue('list (within soft quotes)', _list_case(contents_transformation)), ] for case in cases: syntax = TransformedStringSourceAbsStx( case.value.syntax, transformer_symbol.abstract_syntax, ) all_symbols = [case.value.symbol, transformer_symbol] # ACT & ASSERT # CHECKER.check__abs_stx__layouts__std_source_variants__wo_input( self, syntax, arrangement_w_tcds( symbols=SymbolContext.symbol_table_of_contexts( all_symbols), ), MultiSourceExpectation.of_prim( symbol_references=asrt.matches_sequence([ references.is_reference_to__string( case.value.symbol.name), transformer_symbol.reference_assertion, ]), primitive=case.value.expectation_of_primitive, ), sub_test_identifiers={ 'case': case.name, })