def METHOD_NAME():
    """
    This is a basic test for the FQN (positive and negative test).
    """
    #################################
    # META MODEL DEF
    #################################
    my_metamodel = metamodel_from_str(metamodel_str)
    my_metamodel.register_scope_providers({"*.*": scoping_providers.FQN()})
    #################################
    # MODEL PARSING
    #################################
    with raises(textx.exceptions.TextXSemanticError,
                match=r'.*p1.*'):
        my_metamodel.model_from_str('''
        package P1 {
            class Part1 {
            }
        }
        package P2 {
            class Part2 {
                attr C2 rec;
            }
            class C2 {
                attr P1.Part1 p1;
                attr Part2 p2a;
                attr p1 p2b;
            }
        }
        ''')