def test_from_dbvalue_ftps(self): reg = UrlTypeRegistry() v = AnyUrlValue.from_db_value("ftps://www.example.com/", reg) self.assertEqual(v.type_prefix, 'http') # http is the constant for external URL types self.assertEqual(v.type_value, "ftps://www.example.com/") self.assertEqual(unicode(v), "ftps://www.example.com/")
def test_bool_empty(self): """ Make sure empty value is treated as false. """ x = AnyUrlValue.from_db_value('') self.assertFalse(1 if x else 0) self.assertFalse(x.exists())
def test_from_dbvalue_ftps(self): reg = UrlTypeRegistry() v = AnyUrlValue.from_db_value("ftps://www.example.com/", reg) self.assertEqual(v.type_prefix, 'http') # http is the constant for external URL types self.assertEqual(v.type_value, "ftps://www.example.com/") self.assertEqual(unicode(v), "ftps://www.example.com/")
def test_from_dbvalue(self): reg = UrlTypeRegistry() v = AnyUrlValue.from_db_value("http://www.example.com/", reg) self.assertEqual(v.type_prefix, 'http') self.assertEqual(v.type_value, "http://www.example.com/") self.assertEqual(unicode(v), "http://www.example.com/")
def test_from_dbvalue(self): reg = UrlTypeRegistry() v = AnyUrlValue.from_db_value("http://www.example.com/", reg) self.assertEqual(v.type_prefix, 'http') self.assertEqual(v.type_value, "http://www.example.com/") self.assertEqual(unicode(v), "http://www.example.com/")
def test_db_pre_save(self): """ Make sure saving works """ obj = UrlModel( url=AnyUrlValue.from_db_value('http://www.example.org/')) obj.save() self.assertTrue(obj.pk)
def test_pickle(self): # See if regular fields can be pickled v1 = AnyUrlValue.from_db_value("http://www.example.com/") out = StringIO() pickle.dump(v1, out) # Unpickle. out.seek(0) v2 = pickle.load(out) self.assertEqual(v1, v2) # Note that __eq__ is overridden for AnyUrlValue
def test_from_db_value_mailto(self): """ Test constructing the value from ID. """ reg = UrlTypeRegistry() v = AnyUrlValue.from_db_value("mailto://[email protected]", reg) self.assertEqual(v.type_prefix, 'http') # http is the constant for external URL types self.assertEqual(v.type_value, "mailto://[email protected]") self.assertEqual(unicode(v), "mailto://[email protected]")
def test_from_db_value_ftps(self): """ Make sure other URLs are properly serialized. """ reg = UrlTypeRegistry() v = AnyUrlValue.from_db_value("ftps://www.example.com/", reg) self.assertEqual(v.type_prefix, 'http') # http is the constant for external URL types self.assertEqual(v.type_value, "ftps://www.example.com/") self.assertEqual(unicode(v), "ftps://www.example.com/")
def test_form_clean(self): """ Basic test of form validation. """ reg = UrlTypeRegistry() reg.register(PageModel) class ExampleForm(forms.Form): url = any_urlfield.forms.AnyUrlField(url_type_registry=reg) # Test 1: basic URL form = ExampleForm(data={ 'url_0': 'http', 'url_1': 'http://examle.org/', }) self.assertTrue(form.is_valid()) self.assertEqual(form.cleaned_data['url'], AnyUrlValue.from_db_value('http://examle.org/')) # Test 2: ID field x = PageModel.objects.create(slug='foo') form = ExampleForm(data={ 'url_0': 'any_urlfield.pagemodel', 'url_1': '', 'url_2': str(x.pk), }) self.assertTrue(form.is_valid()) self.assertEqual(form.cleaned_data['url'].to_db_value(), 'any_urlfield.pagemodel://{}'.format(x.pk)) self.assertEqual(form.cleaned_data['url'].get_object(), x) expected = AnyUrlValue.from_db_value('any_urlfield.pagemodel://{}'.format(x.pk), url_type_registry=reg) self.assertEqual(form.cleaned_data['url'], expected) # Test 3: invalid ID x = PageModel.objects.create(slug='foo') form = ExampleForm(data={ 'url_0': 'any_urlfield.pagemodel', 'url_1': '', 'url_2': '-1', }) self.assertFalse(form.is_valid())
def test_modelform(self): """ Testing the model form creation """ class UrlModelForm(forms.ModelForm): class Meta: model = UrlModel fields = ('url',) # Test showing the form instance = UrlModel.objects.create(url=AnyUrlValue.from_db_value('http://example.org/')) form = UrlModelForm(instance=instance) self.assertIsInstance(form.fields['url'], any_urlfield.forms.AnyUrlField) form.as_p() # Walk through rendering code. # Test saving URLs form = UrlModelForm(instance=instance, data={ 'url_0': 'http', 'url_1': 'http://example2.org/', }) self.assertTrue(form.is_valid()) form.save() self.assertEqual(str(instance.url), 'http://example2.org/') # Test saving IDs x = RegPageModel.objects.create(slug='modelform') form = UrlModelForm(instance=instance, data={ 'url_0': 'any_urlfield.regpagemodel', 'url_2': str(x.pk), }) self.assertEqual(form.errors, {}) self.assertTrue(form.is_valid()) form.save() self.assertEqual(str(instance.url), '/modelform/') # Test showing IDs form = UrlModelForm(instance=instance) assert form.initial['url'].to_db_value() == 'any_urlfield.regpagemodel://{}'.format(x.pk) form.as_p() # Walk through rendering code.
def test_bool_empty(self): x = AnyUrlValue.from_db_value('') self.assertFalse(1 if x else 0) self.assertFalse(x.exists())
def test_db_pre_save(self): obj = UrlModel(url=AnyUrlValue.from_db_value('http://www.example.org/')) obj.save() self.assertTrue(obj.pk)
def test_bool_empty(self): x = AnyUrlValue.from_db_value('') self.assertFalse(1 if x else 0) self.assertFalse(x.exists())