def test_merge_resolver_to_untagged_target():
    a = lambda: None
    b = lambda: None

    tag_resolver(a, 'test')
    merge_resolver_tags(a, b)

    assert resolver_has_tag(b, 'test')
def test_merge_resolver_tags():
    a = lambda: None
    b = lambda: None

    tag_resolver(a, 'a')
    tag_resolver(b, 'b')

    merge_resolver_tags(a, b)

    assert resolver_has_tag(a, 'a')
    assert not resolver_has_tag(a, 'b')

    assert resolver_has_tag(b, 'a')
    assert resolver_has_tag(b, 'b')
    class Droid(Character):
        name = String()

        def resolve_name(self, *args):
            return 'My Droid'

        tag_resolver(resolve_name, 'test')
def test_tag_resolver():
    resolver = lambda: None

    tag_resolver(resolver, 'test')
    assert resolver_has_tag(resolver, 'test')
    assert not resolver_has_tag(resolver, 'not test')