Beispiel #1
0
    def create_item(self, url):
        aliases_limit = self.site.aliases_limit
        if (aliases_limit is not None and self.count() >= aliases_limit):
            raise LimitExceeded('Aliases limit exceeded')
        if len(url) > self.ALIAS_LEN_LIMIT:
            raise ValidationError('Url too long')

        url = url.strip().lower()
        (valid, error) = url_utils.validate_site_url(url)
        if not valid:
            raise ValidationError('Invalid url: ' + error)
        if self.find_item_by_url(url):
            raise ValidationError('Alias with this url already exists')
        return self._do_create_item(url=url_utils.remove_default_port(url))
    def create_item(self, url):
        aliases_limit = self.site.aliases_limit
        if (aliases_limit is not None and self.count() >= aliases_limit):
            raise LimitExceeded('Aliases limit exceeded')
        if len(url) > self.ALIAS_LEN_LIMIT:
            raise ValidationError('Url too long')

        url = url.strip().lower()
        (valid, error) = url_utils.validate_site_url(url)
        if not valid:
            raise ValidationError('Invalid url: ' + error)
        url = url_utils.remove_default_port(url)
        if self.find_item_by_url(url):
            raise ValidationError('Alias with this url already exists')
        return self._do_create_item(url=url)
Beispiel #3
0
    def test_validation(self):
        self.assertInvalid(
            validate_site_url('example.com'), 'missing scheme')
        self.assertInvalid(
            validate_site_url('ftp://example.com'), 'incorrect scheme')
        self.assertInvalid(
            validate_site_url('http://'), 'missing domain')
        self.assertInvalid(
            validate_site_url('http://example.com/foo'), 'contains path')
        self.assertInvalid(
            validate_site_url('http://example.com/'), 'contains path')
        self.assertInvalid(
            validate_site_url('http://example.com?a=b'), 'contains query')
        self.assertInvalid(
            validate_site_url('http://example.com#boo'), 'contains fragment')
        self.assertInvalid(
            validate_site_url('http://[email protected]'), 'contains username')
        self.assertInvalid(
            validate_site_url('http://:[email protected]'), 'contains password')

        self.assertValid(validate_site_url('http://example.com'))
        self.assertValid(validate_site_url('http://example.com:80'))
        self.assertValid(validate_site_url('https://example.com'))
        self.assertValid(validate_site_url('https://example.com:123'))