def test_default_empty_entry_point_group(cleanup): Lookup._DEFAULT_ENTRY_POINT_GROUP = 'lookups.test_default_empty_entry_point_group' dflt = Lookup.get_default() assert dflt assert isinstance(dflt, ProxyLookup) all_instances = dflt.lookup_all(object) assert not all_instances assert Lookup.get_default() is dflt assert Lookup._DEFAULT_LOOKUP is dflt assert Lookup._DEFAULT_LOOKUP_PROVIDER is None
def test_default_lookup_provider(cleanup): Lookup._DEFAULT_ENTRY_POINT_GROUP = 'lookups.test_default_lookup_provider' dflt = Lookup.get_default() assert dflt assert isinstance(dflt, DelegatedLookup) all_instances = dflt.lookup_all(object) assert len(all_instances) == 1 assert isinstance(all_instances[0], TestParentObject) assert Lookup.get_default() is dflt assert Lookup._DEFAULT_LOOKUP is dflt assert Lookup._DEFAULT_LOOKUP_PROVIDER is None
def test_default_no_lookup(cleanup): Lookup._DEFAULT_ENTRY_POINT_GROUP = 'lookups.test_default_no_lookup' dflt = Lookup.get_default() assert dflt assert isinstance(dflt, ProxyLookup) all_instances = dflt.lookup_all(object) assert all_instances assert (len(all_instances) % 3) == 0 # Because pytest can double up our entry points assert {type(instance) for instance in all_instances } == set([TestParentObject, TestChildObject, TestOtherObject]) assert Lookup.get_default() is dflt assert Lookup._DEFAULT_LOOKUP is dflt assert Lookup._DEFAULT_LOOKUP_PROVIDER is None
def test_default_lookup_lookup_provider(cleanup): Lookup._DEFAULT_ENTRY_POINT_GROUP = 'lookups.test_default_lookup_lookup_provider' dflt = Lookup.get_default() assert dflt assert isinstance(dflt, SingletonLookup) all_instances = dflt.lookup_all(object) assert len(all_instances) == 1 assert isinstance(all_instances[0], TestParentObject) assert Lookup.get_default() is dflt assert isinstance(Lookup._DEFAULT_LOOKUP, DefaultLookupLookupProvider) assert Lookup._DEFAULT_LOOKUP_PROVIDER is Lookup._DEFAULT_LOOKUP # Try have the provider return None Lookup._DEFAULT_LOOKUP_PROVIDER._lookup = None new_dflt = Lookup.get_default() assert new_dflt is Lookup._DEFAULT_LOOKUP all_instances = new_dflt.lookup_all(object) assert len(all_instances) == 1 assert isinstance(all_instances[0], TestOtherObject)