misc: add |urljoin template filter (#51615)
This commit is contained in:
parent
74c9e66d6a
commit
4c6ec73981
|
@ -188,6 +188,25 @@ def test_removesuffix_templatetag():
|
|||
assert tmpl.render({'foo': 'XYfoo barXYXY'}) == 'XYfoo barXY'
|
||||
|
||||
|
||||
def test_urljoin_templatefilter():
|
||||
tmpl = Template('{{ foo|urljoin }}')
|
||||
assert tmpl.render() == ''
|
||||
assert tmpl.render({'foo': None}) == ''
|
||||
assert tmpl.render({'foo': ''}) == ''
|
||||
assert tmpl.render({'foo': 'http://example.com'}) == 'http://example.com'
|
||||
assert tmpl.render({'foo': 'http://example.com/'}) == 'http://example.com/'
|
||||
|
||||
tmpl = Template('{{ foo|urljoin:bar }}')
|
||||
assert tmpl.render({'foo': None, 'bar': None}) == ''
|
||||
assert tmpl.render({'foo': None, 'bar': 'some/url'}) == 'some/url'
|
||||
assert tmpl.render({'foo': 'http://example.com', 'bar': None}) == 'http://example.com'
|
||||
assert tmpl.render({'foo': 'http://example.com', 'bar': 'some/url'}) == 'http://example.com/some/url'
|
||||
assert tmpl.render({'foo': 'http://example.com/', 'bar': 'some/url'}) == 'http://example.com/some/url'
|
||||
assert tmpl.render({'foo': 'http://example.com', 'bar': '/some/url'}) == 'http://example.com/some/url'
|
||||
assert tmpl.render({'foo': 'http://example.com/', 'bar': '/some/url'}) == 'http://example.com/some/url'
|
||||
assert tmpl.render({'foo': 'http://example.com/', 'bar': '/some/url'}) == 'http://example.com/some/url'
|
||||
|
||||
|
||||
def test_unaccent_templatetag():
|
||||
tmpl = Template('{{ foo|unaccent }}')
|
||||
assert tmpl.render() == ''
|
||||
|
|
|
@ -23,6 +23,7 @@ import math
|
|||
import string
|
||||
import random
|
||||
import unicodedata
|
||||
import urllib.parse
|
||||
|
||||
import pyproj
|
||||
from pyproj import Geod
|
||||
|
@ -121,6 +122,11 @@ def removesuffix(string, suffix=None):
|
|||
return value
|
||||
|
||||
|
||||
@register.filter
|
||||
def urljoin(base, path=None):
|
||||
return urllib.parse.urljoin(base or '', path or '')
|
||||
|
||||
|
||||
@register.filter
|
||||
def unaccent(value):
|
||||
if not value:
|
||||
|
|
Loading…
Reference in New Issue