summaryrefslogtreecommitdiff
path: root/tests/test_leak.py
blob: 964341a2d9f43969f53c85b0724d4526144b78af (plain)
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
# -*- coding: utf-8 -*-
import gc
import sys

import pytest

from markupsafe import escape


@pytest.mark.skipif(
    hasattr(escape, 'func_code'),
    reason='only test memory leak with speedups'
)
def test_markup_leaks():
    counts = set()

    for count in range(20):
        for item in range(1000):
            escape("foo")
            escape("<foo>")
            escape(u"foo")
            escape(u"<foo>")

        if hasattr(sys, 'pypy_version_info'):
            gc.collect()

        counts.add(len(gc.get_objects()))

    assert len(counts) == 1