File: test_templates.py

package info (click to toggle)
flask-caching 2.3.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 480 kB
  • sloc: python: 2,826; makefile: 193; sh: 17
file content (54 lines) | stat: -rw-r--r-- 1,940 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import random
import string

from flask import render_template
from flask import render_template_string

from flask_caching import make_template_fragment_key


def test_jinjaext_cache(app, cache):
    somevar = "".join([random.choice(string.ascii_letters) for x in range(6)])

    testkeys = [
        make_template_fragment_key("fragment1"),
        make_template_fragment_key("fragment1", vary_on=["key1"]),
        make_template_fragment_key("fragment1", vary_on=["key1", somevar]),
    ]
    delkey = make_template_fragment_key("fragment2")

    with app.test_request_context():
        #: Test if elements are cached
        render_template("test_template.html", somevar=somevar, timeout=60)
        for k in testkeys:
            assert cache.get(k) == somevar
        assert cache.get(delkey) == somevar

        #: Test timeout=del to delete key
        render_template("test_template.html", somevar=somevar, timeout="del")
        for k in testkeys:
            assert cache.get(k) == somevar
        assert cache.get(delkey) is None

        #: Test rendering templates from strings
        output = render_template_string(
            """{% cache 60, "fragment3" %}{{somevar}}{% endcache %}""",
            somevar=somevar,
        )
        assert cache.get(make_template_fragment_key("fragment3")) == somevar
        assert output == somevar

        #: Test backwards compatibility
        output = render_template_string(
            """{% cache 30 %}{{somevar}}{% endcache %}""", somevar=somevar
        )
        assert cache.get(make_template_fragment_key("None1")) == somevar
        assert output == somevar

        output = render_template_string(
            """{% cache 30, "fragment4", "fragment5"%}{{somevar}}{% endcache %}""",
            somevar=somevar,
        )
        k = make_template_fragment_key("fragment4", vary_on=["fragment5"])
        assert cache.get(k) == somevar
        assert output == somevar