summaryrefslogtreecommitdiff
path: root/tests/test_leak.py
blob: b36a4ce4bc15d0650ba9a76193bd9d2643cc9a3d (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(
    escape.__module__ == "markupsafe._native",
    reason="only test memory leak with speedups",
)
def test_markup_leaks():
    counts = set()

    for _i in range(20):
        for _j 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