def get_connection(backend=None, fail_silently=False, **kwargs): """Load a brevisurl backend and return an instance of it. If backend is None (default) settings.BREVISURL_BACKEND is used. Both fail_silently and other keyword arguments are used in the constructor of the backend. :param backend: path to brevisurl backend :type backend: string :param fail_silently: whether to fail silently when error intercepted or not :type fail_silently: bool :returns: instance os BaseBrevisUrlBackend :rtype: brevisurl.backends.base.BaseBrevisUrlBackend """ import brevisurl.settings from brevisurl.utils import load_object path = backend or brevisurl.settings.DEFAULT_BACKEND klass = load_object(path) return klass(fail_silently=fail_silently, **kwargs)
def test_load_valid_object(self): klass = load_object('brevisurl.backends.local.BrevisUrlBackend') self.assertEqual(klass, BrevisUrlBackend)
def test_load_attribute_error(self): with self.assertRaises(AttributeError): load_object('brevisurl.backends.local.NonExistingBackend')
def test_load_value_error(self): with self.assertRaises(ValueError): load_object('brevisurl')
def test_load_import_error(self): with self.assertRaises(ImportError): load_object('brevisurl.local.BrevisUrlBackend')