예제 #1
0
    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/")
예제 #2
0
 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())
예제 #3
0
    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/")
예제 #4
0
    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/")
예제 #5
0
    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/")
예제 #6
0
 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)
예제 #7
0
    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
예제 #8
0
    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]")
예제 #9
0
    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/")
예제 #10
0
    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())
예제 #11
0
    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.
예제 #12
0
 def test_bool_empty(self):
     x = AnyUrlValue.from_db_value('')
     self.assertFalse(1 if x else 0)
     self.assertFalse(x.exists())
예제 #13
0
 def test_db_pre_save(self):
     obj = UrlModel(url=AnyUrlValue.from_db_value('http://www.example.org/'))
     obj.save()
     self.assertTrue(obj.pk)
예제 #14
0
 def test_bool_empty(self):
     x = AnyUrlValue.from_db_value('')
     self.assertFalse(1 if x else 0)
     self.assertFalse(x.exists())