Remove unnecessary complexity of kwarg mapping

This commit is contained in:
Matthew Tretter 2013-02-01 01:02:20 -05:00
parent 08ebcbcbf3
commit 50d83745bc
2 changed files with 15 additions and 21 deletions

View file

@ -14,15 +14,9 @@ HTML_ATTRS_DELIMITER = '--'
DEFAULT_THUMBNAIL_GENERATOR = 'ik:thumbnail'
_kwarg_map = {
'from': 'source',
}
def get_generatedfile(context, generator_id, generator_kwargs, source=None):
generator_id = generator_id.resolve(context)
kwargs = dict((_kwarg_map.get(k, k), v.resolve(context)) for k,
v in generator_kwargs.items())
kwargs = dict((k, v.resolve(context)) for k, v in generator_kwargs.items())
generator = generator_registry.get(generator_id, **kwargs)
return GeneratedImageFile(generator)
@ -104,8 +98,8 @@ class ThumbnailAssignmentNode(template.Node):
variable_name = self.get_variable_name(context)
generator_id = self._generator_id.resolve(context) if self._generator_id else DEFAULT_THUMBNAIL_GENERATOR
kwargs = dict((_kwarg_map.get(k, k), v.resolve(context)) for k,
v in self._generator_kwargs.items())
kwargs = dict((k, v.resolve(context)) for k, v in
self._generator_kwargs.items())
kwargs['source'] = self._source.resolve(context)
kwargs.update(parse_dimensions(self._dimensions.resolve(context)))
generator = generator_registry.get(generator_id, **kwargs)
@ -130,8 +124,8 @@ class ThumbnailImageTagNode(template.Node):
generator_id = self._generator_id.resolve(context) if self._generator_id else DEFAULT_THUMBNAIL_GENERATOR
dimensions = parse_dimensions(self._dimensions.resolve(context))
kwargs = dict((_kwarg_map.get(k, k), v.resolve(context)) for k,
v in self._generator_kwargs.items())
kwargs = dict((k, v.resolve(context)) for k, v in
self._generator_kwargs.items())
kwargs['source'] = self._source.resolve(context)
kwargs.update(dimensions)
generator = generator_registry.get(generator_id, **kwargs)
@ -199,7 +193,7 @@ def generateimage(parser, token):
By default::
{% generateimage 'myapp:thumbnail' from=mymodel.profile_image %}
{% generateimage 'myapp:thumbnail' source=mymodel.profile_image %}
generates an ``<img>`` tag::
@ -208,7 +202,7 @@ def generateimage(parser, token):
You can add additional attributes to the tag using "--". For example,
this::
{% generateimage 'myapp:thumbnail' from=mymodel.profile_image -- alt="Hello!" %}
{% generateimage 'myapp:thumbnail' source=mymodel.profile_image -- alt="Hello!" %}
will result in the following markup::
@ -216,7 +210,7 @@ def generateimage(parser, token):
For more flexibility, ``generateimage`` also works as an assignment tag::
{% generateimage 'myapp:thumbnail' from=mymodel.profile_image as th %}
{% generateimage 'myapp:thumbnail' source=mymodel.profile_image as th %}
<img src="{{ th.url }}" width="{{ th.width }}" height="{{ th.height }}" />
"""
@ -248,7 +242,7 @@ def thumbnail(parser, token):
is equivalent to::
{% generateimage 'ik:thumbnail' from=mymodel.profile_image width=100 height=100 %}
{% generateimage 'ik:thumbnail' source=mymodel.profile_image width=100 height=100 %}
The thumbnail tag supports the "--" and "as" bits for adding html
attributes and assigning to a variable, respectively. It also accepts the

View file

@ -5,7 +5,7 @@ from .utils import render_tag, get_html_attrs
def test_img_tag():
ttag = r"""{% generateimage 'testspec' from=img %}"""
ttag = r"""{% generateimage 'testspec' source=img %}"""
attrs = get_html_attrs(ttag)
expected_attrs = set(['src', 'width', 'height'])
eq_(set(attrs.keys()), expected_attrs)
@ -14,14 +14,14 @@ def test_img_tag():
def test_img_tag_attrs():
ttag = r"""{% generateimage 'testspec' from=img -- alt="Hello" %}"""
ttag = r"""{% generateimage 'testspec' source=img -- alt="Hello" %}"""
attrs = get_html_attrs(ttag)
eq_(attrs.get('alt'), 'Hello')
@raises(TemplateSyntaxError)
def test_dangling_html_attrs_delimiter():
ttag = r"""{% generateimage 'testspec' from=img -- %}"""
ttag = r"""{% generateimage 'testspec' source=img -- %}"""
render_tag(ttag)
@ -32,7 +32,7 @@ def test_html_attrs_assignment():
but not both.
"""
ttag = r"""{% generateimage 'testspec' from=img -- alt="Hello" as th %}"""
ttag = r"""{% generateimage 'testspec' source=img -- alt="Hello" as th %}"""
render_tag(ttag)
@ -41,12 +41,12 @@ def test_single_dimension_attr():
If you only provide one of width or height, the other should not be added.
"""
ttag = r"""{% generateimage 'testspec' from=img -- width="50" %}"""
ttag = r"""{% generateimage 'testspec' source=img -- width="50" %}"""
attrs = get_html_attrs(ttag)
assert_not_in('height', attrs)
def test_assignment_tag():
ttag = r"""{% generateimage 'testspec' from=img as th %}{{ th.url }}"""
ttag = r"""{% generateimage 'testspec' source=img as th %}{{ th.url }}"""
html = render_tag(ttag)
assert_not_equal(html.strip(), '')