def test_unregister(self): """Testing AvatarServiceRegistry.unregister""" self.siteconfig.set(AvatarServiceRegistry.DEFAULT_SERVICE_KEY, GravatarService.avatar_service_id) self.siteconfig.set(AvatarServiceRegistry.ENABLED_SERVICES_KEY, [GravatarService.avatar_service_id]) self.siteconfig.save() registry = AvatarServiceRegistry() gravatar_service = registry.get('avatar_service_id', GravatarService.avatar_service_id) self.assertEqual(registry.enabled_services, {gravatar_service}) registry.unregister(gravatar_service) self.assertEqual(registry.enabled_services, set()) self.assertIsNone(registry.default_service) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [GravatarService.avatar_service_id]) self.assertEqual( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY), GravatarService.avatar_service_id)
def test_default_service_after_service_reregistered(self): """Testing AvatarServiceRegistry.default_service after service registered after previously unregistered """ self.siteconfig.set(AvatarServiceRegistry.ENABLED_SERVICES_KEY, [DummyAvatarService.avatar_service_id]) self.siteconfig.set(AvatarServiceRegistry.DEFAULT_SERVICE_KEY, DummyAvatarService.avatar_service_id) self.siteconfig.save() registry = AvatarServiceRegistry() registry.populate() self.assertIsNone(registry.default_service) # Make sure it's still saved in siteconfig. We'd only unset it if # wasn't in the list of stoerd enabled service IDs, since we might be # running without extensions loaded. siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY), DummyAvatarService.avatar_service_id) registry.register(DummyAvatarService) self.assertIsInstance(registry.default_service, DummyAvatarService) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY), DummyAvatarService.avatar_service_id)
def test_set_enabled_services(self): """Testing AvatarServiceRegistry.enabled_services setter""" registry = AvatarServiceRegistry() registry.register(DummyAvatarService) registry.enabled_services = [DummyAvatarService, GravatarService] self.assertEqual(registry.enabled_services, {DummyAvatarService, GravatarService})
def test_set_enabled_services_invalid_service(self): """Testing AvatarServiceRegistry.enabled_services setter with an unregistered service """ registry = AvatarServiceRegistry() with self.assertRaises(ItemLookupError): registry.enabled_services = [DummyAvatarService, GravatarService] self.assertEqual(registry.enabled_services, set())
def test_disable_service_by_id_with_save_false(self): """Testing AvatarServiceRegistry.disable_service_by_id with save=False """ registry = AvatarServiceRegistry() self.assertFalse(registry.is_enabled(GravatarService)) registry.enable_service(GravatarService) self.assertTrue(registry.is_enabled(GravatarService)) self.assertEqual(set(registry.enabled_services), {GravatarService}) registry.disable_service_by_id(GravatarService.avatar_service_id, save=False) self.assertFalse(registry.is_enabled(GravatarService)) self.assertEqual(set(registry.enabled_services), set()) # Make sure we've saved this in our cached siteconfig... siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), []) # ... but not in the database. siteconfig = SiteConfiguration.objects.get(pk=siteconfig.pk) self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [GravatarService.avatar_service_id])
def test_set_default_service_invalid(self): """Testing AvatarServiceRegistry.set_default_service setter with an unregistered service """ registry = AvatarServiceRegistry() self.assertIsNone(registry.default_service) with self.assertRaises(ItemLookupError): registry.set_default_service(DummyAvatarService) self.assertIsNone(registry.default_service)
def test_set_enabled_services(self): """Testing AvatarServiceRegistry.enabled_services setter""" registry = AvatarServiceRegistry() dummy_service = DummyAvatarService() registry.register(dummy_service) gravatar_service = registry.get('id', GravatarService.id) registry.enabled_services = [dummy_service, gravatar_service] self.assertEqual(registry.enabled_services, {dummy_service, gravatar_service})
def test_set_default_service_disabled(self): """Testing AvatarServiceRegistry.set_default_service setter with a disabled service """ registry = AvatarServiceRegistry() gravatar_service = registry.get('id', GravatarService.id) self.assertIsNone(registry.default_service) with self.assertRaises(DisabledServiceError): registry.set_default_service(gravatar_service) self.assertIsNone(registry.default_service)
def test_set_default_service_disabled(self): """Testing AvatarServiceRegistry.set_default_service setter with a disabled service """ registry = AvatarServiceRegistry() gravatar_service = registry.get('avatar_service_id', GravatarService.avatar_service_id) self.assertIsNone(registry.default_service) with self.assertRaises(DisabledServiceError): registry.set_default_service(gravatar_service) self.assertIsNone(registry.default_service)
def test_set_enabled_services_invalid_service(self): """Testing AvatarServiceRegistry.set_enabled_services with an unregistered service """ registry = AvatarServiceRegistry() with self.assertRaises(ItemLookupError): registry.set_enabled_services( [DummyAvatarService, GravatarService]) self.assertEqual(registry.enabled_services, set()) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [])
def test_set_enabled_services_invalid_service(self): """Testing AvatarServiceRegistry.enabled_services setter with an unregistered service """ registry = AvatarServiceRegistry() dummy_service = DummyAvatarService() gravatar_service = registry.get('avatar_service_id', GravatarService.avatar_service_id) with self.assertRaises(ItemLookupError): registry.enabled_services = [dummy_service, gravatar_service] self.assertEqual(registry.enabled_services, set())
def test_disable_service(self): """Testing AvatarServiceRegistry.disable_service""" registry = AvatarServiceRegistry() self.assertFalse(registry.is_enabled(GravatarService)) registry.enable_service(GravatarService) self.assertTrue(registry.is_enabled(GravatarService)) self.assertSetEqual(set(registry.enabled_services), {GravatarService}) registry.disable_service(GravatarService) self.assertFalse(registry.is_enabled(GravatarService)) self.assertSetEqual(set(registry.enabled_services), set())
def test_set_enabled_services_invalid_service(self): """Testing AvatarServiceRegistry.set_enabled_services with an unregistered service """ registry = AvatarServiceRegistry() with self.assertRaises(ItemLookupError): registry.set_enabled_services([DummyAvatarService, GravatarService]) self.assertEqual(registry.enabled_services, set()) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [])
def test_populate(self): """Testing AvatarServiceRegistry.populate with site configuration settings """ self.siteconfig.set(AvatarServiceRegistry.ENABLED_SERVICES_KEY, [GravatarService.avatar_service_id]) self.siteconfig.set(AvatarServiceRegistry.DEFAULT_SERVICE_KEY, GravatarService.avatar_service_id) self.siteconfig.save() registry = AvatarServiceRegistry() registry.populate() self.assertTrue(registry.populated) self.assertIsInstance(registry.default_service, GravatarService) self.assertEqual(registry.enabled_services, {GravatarService})
def test_set_default_service(self): """Testing AvatarServiceRegistry.set_default_service""" self.siteconfig.set(AvatarServiceRegistry.ENABLED_SERVICES_KEY, [GravatarService.avatar_service_id]) self.siteconfig.save() registry = AvatarServiceRegistry() self.assertIsNone(registry.default_service) registry.set_default_service(GravatarService) self.assertIsInstance(registry.default_service, GravatarService) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY), GravatarService.avatar_service_id)
def test_disable_default(self): """Testing AvatarServiceRegistry.disable_service unsets the default service """ registry = AvatarServiceRegistry() registry.enable_service(GravatarService) registry.set_default_service(GravatarService) registry.disable_service(GravatarService) self.assertIsNone(registry.default_service)
def test_disable_default(self): """Testing AvatarServiceRegistry.disable_service unsets the default service """ registry = AvatarServiceRegistry() registry.enable_service(GravatarService.id) registry.set_default_service(registry.get('id', GravatarService.id)) registry.disable_service(GravatarService.id) self.assertIsNone(registry.default_service)
def test_set_enabled_services(self): """Testing AvatarServiceRegistry.set_enabled_services""" registry = AvatarServiceRegistry() registry.register(DummyAvatarService) registry.set_enabled_services([DummyAvatarService, GravatarService]) self.assertEqual(registry.enabled_services, {DummyAvatarService, GravatarService}) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( set(siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY)), { DummyAvatarService.avatar_service_id, GravatarService.avatar_service_id, })
def test_set_default_service_disabled(self): """Testing AvatarServiceRegistry.set_default_service with a disabled service """ registry = AvatarServiceRegistry() gravatar_service = registry.get('avatar_service_id', GravatarService.avatar_service_id) self.assertIsNone(registry.default_service) with self.assertRaises(DisabledServiceError): registry.set_default_service(gravatar_service) self.assertIsNone(registry.default_service) siteconfig = SiteConfiguration.objects.get_current() self.assertIsNone( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY))
def test_enable_service(self): """Testing AvatarServiceRegistry.enable_service""" registry = AvatarServiceRegistry() registry.register(DummyAvatarService) self.assertFalse(registry.is_enabled(DummyAvatarService)) self.assertSetEqual(set(registry.enabled_services), set()) registry.enable_service(DummyAvatarService) self.assertTrue(registry.is_enabled(DummyAvatarService)) self.assertSetEqual(registry.enabled_services, {DummyAvatarService})
def test_disable_service_by_id(self): """Testing AvatarServiceRegistry.disable_service_by_id""" registry = AvatarServiceRegistry() self.assertFalse(registry.is_enabled(GravatarService)) registry.enable_service(GravatarService) self.assertTrue(registry.is_enabled(GravatarService)) self.assertEqual(set(registry.enabled_services), {GravatarService}) registry.disable_service_by_id(GravatarService.avatar_service_id) self.assertFalse(registry.is_enabled(GravatarService)) self.assertEqual(set(registry.enabled_services), set()) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [])
def test_disable_service(self): """Testing AvatarServiceRegistry.disable_service""" registry = AvatarServiceRegistry() self.assertFalse(registry.is_enabled(GravatarService.id)) registry.enable_service(GravatarService.id) self.assertTrue(registry.is_enabled(GravatarService.id)) self.assertSetEqual(set(registry.enabled_services), set(registry)) registry.disable_service(GravatarService.id) self.assertFalse(registry.is_enabled(GravatarService.id)) self.assertSetEqual(set(registry.enabled_services), set())
def test_disable_default_from_setter(self): """Testing AvatarServiceRegistry.enabled_services setter unsets the default services """ registry = AvatarServiceRegistry() registry.enable_service(GravatarService.id) registry.set_default_service(registry.get('id', GravatarService.id)) registry.enabled_services = [] self.assertIsNone(registry.default_service)
def test_disable_default_from_setter(self): """Testing AvatarServiceRegistry.enabled_services setter unsets the default services """ registry = AvatarServiceRegistry() registry.enable_service(GravatarService) registry.set_default_service(GravatarService) registry.enabled_services = [] self.assertIsNone(registry.default_service)
def test_set_default_service_invalid(self): """Testing AvatarServiceRegistry.set_default_service with an unregistered service """ self.siteconfig.set(AvatarServiceRegistry.ENABLED_SERVICES_KEY, [GravatarService.avatar_service_id]) self.siteconfig.set(AvatarServiceRegistry.DEFAULT_SERVICE_KEY, GravatarService.avatar_service_id) self.siteconfig.save() registry = AvatarServiceRegistry() self.assertIsInstance(registry.default_service, GravatarService) with self.assertRaises(ItemLookupError): registry.set_default_service(DummyAvatarService) self.assertIsInstance(registry.default_service, GravatarService) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY), GravatarService.avatar_service_id)
def test_unregister(self): """Testing AvatarServiceRegistry.unregister""" registry = AvatarServiceRegistry() gravatar_service = registry.get('avatar_service_id', GravatarService.avatar_service_id) registry.enable_service(GravatarService) self.assertSetEqual(registry.enabled_services, {gravatar_service}) registry.unregister(gravatar_service) self.assertSetEqual(registry.enabled_services, set())
def test_populate(self): """Testing AvatarServiceRegistry.populate with site configuration settings """ self.spy_on(logging.error) self.siteconfig.set(AvatarServiceRegistry.ENABLED_SERVICES_KEY, [GravatarService.id]) self.siteconfig.set(AvatarServiceRegistry.DEFAULT_SERVICE_KEY, GravatarService.id) self.siteconfig.save() registry = AvatarServiceRegistry() registry.populate() gravatar_service = registry.get('id', GravatarService.id) self.assertTrue(registry.populated) self.assertEqual(registry.default_service, gravatar_service) self.assertEqual(registry.enabled_services, {gravatar_service}) self.assertFalse(logging.error.spy.called)
def test_enable_service(self): """Testing AvatarServiceRegistry.enable_service""" registry = AvatarServiceRegistry() registry.register(DummyAvatarService) self.assertFalse(registry.is_enabled(DummyAvatarService)) self.assertEqual(set(registry.enabled_services), set()) registry.enable_service(DummyAvatarService) self.assertTrue(registry.is_enabled(DummyAvatarService)) self.assertEqual(registry.enabled_services, {DummyAvatarService}) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [DummyAvatarService.avatar_service_id])
def test_enable_service(self): """Testing AvatarServiceRegistry.enable_service""" registry = AvatarServiceRegistry() registry.register(DummyAvatarService) self.assertFalse(registry.is_enabled(DummyAvatarService)) self.assertSetEqual(set(registry.enabled_services), set()) registry.enable_service(DummyAvatarService) self.assertTrue(registry.is_enabled(DummyAvatarService)) self.assertSetEqual( registry.enabled_services, {DummyAvatarService})
def test_set_enabled_services_with_save_false(self): """Testing AvatarServiceRegistry.set_enabled_services with save=False """ registry = AvatarServiceRegistry() registry.register(DummyAvatarService) registry.set_enabled_services([DummyAvatarService, GravatarService], save=False) self.assertEqual(registry.enabled_services, {DummyAvatarService, GravatarService}) # Make sure we've saved this in our cached siteconfig... siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( set(siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY)), {DummyAvatarService.avatar_service_id, GravatarService.avatar_service_id}) # ... but not in the database. siteconfig = SiteConfiguration.objects.get(pk=siteconfig.pk) self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [])
def test_disable_default_from_setter(self): """Testing AvatarServiceRegistry.set_enabled_services unsets the default services when removed """ registry = AvatarServiceRegistry() registry.enable_service(GravatarService) registry.set_default_service(GravatarService) registry.set_enabled_services([]) self.assertIsNone(registry.default_service) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), []) self.assertIsNone( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY))
def test_set_default_service_with_save_false(self): """Testing AvatarServiceRegistry.set_default_service with save=False""" self.siteconfig.set(AvatarServiceRegistry.ENABLED_SERVICES_KEY, [GravatarService.avatar_service_id]) self.siteconfig.set(AvatarServiceRegistry.DEFAULT_SERVICE_KEY, GravatarService.avatar_service_id) self.siteconfig.save() registry = AvatarServiceRegistry() registry.set_default_service(None, save=False) self.assertIsNone(registry.default_service) # Make sure we've saved this in our cached siteconfig... siteconfig = SiteConfiguration.objects.get_current() self.assertIsNone( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY)) # ... but not in the database. siteconfig = SiteConfiguration.objects.get(pk=siteconfig.pk) self.assertEqual( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY), GravatarService.avatar_service_id)
def test_unregister_register_keeps_enabled(self): """Testing AvatarServiceRegistry.unregister followed by register keeps enabled state """ registry = AvatarServiceRegistry() gravatar_service = registry.get('avatar_service_id', GravatarService.avatar_service_id) registry.enable_service(GravatarService) self.assertEqual(registry.enabled_services, {gravatar_service}) registry.unregister(gravatar_service) self.assertEqual(registry.enabled_services, set()) registry.register(gravatar_service) self.assertEqual(registry.enabled_services, {gravatar_service}) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [GravatarService.avatar_service_id])
def test_unregister(self): """Testing AvatarServiceRegistry.unregister""" registry = AvatarServiceRegistry() gravatar_service = registry.get('id', GravatarService.id) registry.enable_service(GravatarService.id) self.assertSetEqual(registry.enabled_services, {gravatar_service}) registry.unregister(gravatar_service) self.assertSetEqual(registry.enabled_services, set())
def test_populate_invalid_enabled_services(self): """Testing AvatarServiceRegistry.populate with an unregistered service """ self.spy_on(logging.error) self.siteconfig.set(AvatarServiceRegistry.ENABLED_SERVICES_KEY, [DummyAvatarService.avatar_service_id]) self.siteconfig.save() registry = AvatarServiceRegistry() self.assertEqual(registry.default_service, None) self.assertEqual(registry.enabled_services, set()) self.assertTrue(logging.error.spy.called) siteconfig = SiteConfiguration.objects.get_current() self.assertListEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [])
def test_populate_disabled_default(self): """Testing AvatarServiceRegistry.populate with a disabled default registry in the site configuration """ self.spy_on(logging.error) self.siteconfig.set(AvatarServiceRegistry.DEFAULT_SERVICE_KEY, GravatarService.avatar_service_id) self.siteconfig.save() registry = AvatarServiceRegistry() self.assertEqual(registry.default_service, None) self.assertEqual(registry.enabled_services, set()) self.assertTrue(logging.error.spy.called) siteconfig = SiteConfiguration.objects.get_current() self.assertIsNone( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY))
def test_set_enabled_services_with_save_false(self): """Testing AvatarServiceRegistry.set_enabled_services with save=False """ registry = AvatarServiceRegistry() registry.register(DummyAvatarService) registry.set_enabled_services([DummyAvatarService, GravatarService], save=False) self.assertEqual(registry.enabled_services, {DummyAvatarService, GravatarService}) # Make sure we've saved this in our cached siteconfig... siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( set(siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY)), { DummyAvatarService.avatar_service_id, GravatarService.avatar_service_id }) # ... but not in the database. siteconfig = SiteConfiguration.objects.get(pk=siteconfig.pk) self.assertEqual( siteconfig.get(AvatarServiceRegistry.ENABLED_SERVICES_KEY), [])
def test_default_service(self): """Testing AvatarServiceRegistry.default_service""" registry = AvatarServiceRegistry() registry.register(DummyAvatarService) registry.set_enabled_services([DummyAvatarService, GravatarService]) self.assertIsNone(registry.default_service) # Set the default backend to the dummy backend. registry.set_default_service(DummyAvatarService) self.assertIsInstance(registry.default_service, DummyAvatarService) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY), DummyAvatarService.avatar_service_id) # Set the default backend to the Gravatar backend. registry.set_default_service(GravatarService) self.assertIsInstance(registry.default_service, GravatarService) siteconfig = SiteConfiguration.objects.get_current() self.assertEqual( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY), GravatarService.avatar_service_id) # Remove the default backend. registry.set_default_service(None) self.assertIsNone(registry.default_service) siteconfig = SiteConfiguration.objects.get_current() self.assertIsNone( siteconfig.get(AvatarServiceRegistry.DEFAULT_SERVICE_KEY))
def test_default_service(self): """Testing AvatarServiceRegistry.default_service""" registry = AvatarServiceRegistry() registry.register(DummyAvatarService) registry.enabled_services = [DummyAvatarService, GravatarService] self.assertIsNone(registry.default_service) registry.set_default_service(DummyAvatarService) self.assertIsInstance(registry.default_service, DummyAvatarService) registry.set_default_service(GravatarService) self.assertIsInstance(registry.default_service, GravatarService) registry.set_default_service(None) self.assertIsNone(registry.default_service)
def test_default_service(self): """Testing AvatarServiceRegistry.default_service""" registry = AvatarServiceRegistry() dummy_serivce = DummyAvatarService() gravatar_service = registry.get('id', GravatarService.id) registry.register(dummy_serivce) registry.enabled_services = [dummy_serivce, gravatar_service] self.assertIsNone(registry.default_service) registry.set_default_service(dummy_serivce) self.assertEqual(registry.default_service, dummy_serivce) registry.set_default_service(gravatar_service) self.assertEqual(registry.default_service, gravatar_service) registry.set_default_service(None) self.assertIsNone(registry.default_service)