def test_valid_db_id(self): """ Make sure ID values are properly stored and serialized. """ reg = UrlTypeRegistry() urltype = reg.register(PageModel) page = PageModel.objects.create(slug='foo') v = AnyUrlValue(urltype.prefix, page.id, reg) # Database state self.assertTrue(page.id) self.assertEqual(urltype.prefix, 'any_urlfield.pagemodel') # app_label.modelname self.assertEqual(v.type_prefix, urltype.prefix) self.assertEqual(v.type_value, page.id) self.assertEqual(v.to_db_value(), 'any_urlfield.pagemodel://1') # Frontend self.assertEqual( unicode(v), "/foo/") # fetches model and returns get_absolute_url() # Programmer API's self.assertIs(v.get_model(), PageModel) self.assertEqual(v.get_object(), page) self.assertTrue(v.exists())
def test_invalid_db_id(self): reg = UrlTypeRegistry() urltype = reg.register(PageModel) v = AnyUrlValue(urltype.prefix, 999999, reg) # Database state self.assertEqual(v.type_value, 999999) self.assertEqual(v.to_db_value(), 'any_urlfield.pagemodel://999999') # Frontend self.assertEqual(unicode(v), "#DoesNotExist") # Avoids frontend errors # Programmer API's self.assertIs(v.get_model(), PageModel) self.assertRaises(PageModel.DoesNotExist, lambda: v.get_object()) self.assertFalse(v.exists())
def test_invalid_db_id(self): reg = UrlTypeRegistry() urltype = reg.register(PageModel) v = AnyUrlValue(urltype.prefix, 999999, reg) # Database state self.assertEqual(v.type_value, 999999) self.assertEqual(v.to_db_value(), 'any_urlfield.pagemodel://999999') # Frontend from any_urlfield.models.values import logger logger.warning("NOTE: The following statement will cause a log to output") self.assertEqual(unicode(v), "#DoesNotExist") # Avoids frontend errors # Programmer API's self.assertIs(v.get_model(), PageModel) self.assertRaises(PageModel.DoesNotExist, lambda: v.get_object()) self.assertFalse(v.exists())
def test_from_db_value_id(self): reg = UrlTypeRegistry() urltype = reg.register(PageModel) page = PageModel.objects.create(slug='foo') v = AnyUrlValue(urltype.prefix, page.id, reg) # Database state self.assertTrue(page.id) self.assertEqual(urltype.prefix, 'any_urlfield.pagemodel') # app_label.modelname self.assertEqual(v.type_prefix, urltype.prefix) self.assertEqual(v.type_value, page.id) self.assertEqual(v.to_db_value(), 'any_urlfield.pagemodel://1') # Frontend self.assertEqual(unicode(v), "/foo/") # fetches model and returns get_absolute_url() # Programmer API's self.assertIs(v.get_model(), PageModel) self.assertEqual(v.get_object(), page) self.assertTrue(v.exists())