Пример #1
0
from roleplay.role import Role


class Base(Role):
    def base(self):
        return "Base.base"


class Foo(Role):
    def foo(self):
        return "foo.foo"


has_role(Foo, Base)

assert does(Foo, Base)


class Bar(Role):
    def bar(self):
        return "Bar.bar"


has_role(Bar, Foo)
assert does(Bar, Foo)
assert does(Bar, Base)


class Fubar(Role):
    def fubar(self):
        return "Fubar.fubar"
Пример #2
0
from roleplay import does, has_role
from roleplay.role import Role

class Base(Role):
    def base(self):
        return "Base.base"

class Foo(Role):
    def foo(self):
        return "foo.foo"

has_role(Foo, Base);

assert does(Foo, Base);

class Bar(Role):
    def bar(self):
        return "Bar.bar"

has_role(Bar, Foo)
assert does(Bar, Foo)
assert does(Bar, Base)

class Fubar(Role):
    def fubar(self):
        return "Fubar.fubar"
import inspect
print inspect.getframeinfo(inspect.currentframe())[0].ljust(40) + ": OK! All tests passed."
Пример #3
0
# Combine them into a third role

class rFooBar(Role):
    pass

has_role(rFooBar, rFoo, rBar)

import inspect
assert Role in inspect.getmro(rFoo)
assert Role in inspect.getmro(rBar)
assert Role in inspect.getmro(rFooBar)
assert rFoo not in inspect.getmro(rFooBar)
assert rBar not in inspect.getmro(rFooBar)
                                                                                  
assert does(rFoo, rFoo)
assert does(rBar, rBar)
assert does(rFooBar, rFoo)
assert does(rFooBar, rBar)
assert does(rFooBar, rFooBar)

# create another role                                                             

class rBaz(Role):
    pass

has_role(rBaz, rFoo)

assert Role in inspect.getmro(rBaz)

assert does(rBaz, rFoo)