コード例 #1
0
    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,
                })
コード例 #2
0
    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,
                })