Skip to content

Commit 1559d7b

Browse files
committed
test: fix for pypy
1 parent 1d22015 commit 1559d7b

5 files changed

Lines changed: 20 additions & 40 deletions

File tree

tests/test_security_edge_cases.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,15 @@ def test_blank_list_continuations_are_near_linear(self):
1010

1111
def render(size):
1212
text = "- first\n" + "\n" * size + " last\n"
13-
started = time.process_time()
13+
started = time.perf_counter()
1414
md(text)
15-
return time.process_time() - started
15+
return time.perf_counter() - started
1616

1717
render(500)
1818
small = render(2000)
1919
large = render(8000)
2020

21-
self.assertLess(large, 1.0)
22-
self.assertLess(large, small * 8)
21+
self.assertLess(large, small * 8 + 0.02)
2322

2423
def test_dense_emphasis_is_near_linear(self):
2524
md = create_markdown()
@@ -33,7 +32,6 @@ def render(size):
3332
small = render(4000)
3433
large = render(8000)
3534

36-
self.assertLess(large, 1.0)
3735
self.assertLess(large, small * 3.5 + 0.02)
3836

3937
def test_dense_emphasis_preserves_adjacent_tokens(self):

tests/test_security_formatting.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
import platform
21
import time
32
from unittest import TestCase
43

54
from mistune import create_markdown
65

76

8-
IS_PYPY = platform.python_implementation() == "PyPy"
9-
10-
117
class TestFormattingSecurity(TestCase):
128
def test_repeated_formatting_pairs_render_as_adjacent_spans(self):
139
md = create_markdown(plugins=["strikethrough"])
@@ -25,8 +21,8 @@ def test_repeated_formatting_pairs_return_quickly(self):
2521
md = create_markdown(plugins=[plugin])
2622
md(unit)
2723

28-
repetitions = 500 if IS_PYPY else 3000
29-
deadline = 1.0 if IS_PYPY else 0.5
24+
repetitions = 3000
25+
deadline = 1.0
3026
text = unit * repetitions
3127

3228
start = time.monotonic()
@@ -46,13 +42,12 @@ def test_repeated_unclosed_formatting_markers_are_near_linear(self):
4642
md = create_markdown(plugins=[plugin])
4743

4844
def render(size):
49-
start = time.process_time()
45+
start = time.perf_counter()
5046
md(unit * size + "\n")
51-
return time.process_time() - start
47+
return time.perf_counter() - start
5248

5349
render(200)
5450
small = render(1000)
5551
large = render(2000)
5652

57-
self.assertLess(large, 1.0 if IS_PYPY else 0.5)
58-
self.assertLess(large, small * 3)
53+
self.assertLess(large, small * 3.5 + 0.02)

tests/test_security_inline.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import platform
21
import time
32
from unittest import TestCase
43

54
from mistune import create_markdown
65

7-
IS_PYPY = platform.python_implementation() == "PyPy"
8-
DEADLINE = 1.0 if IS_PYPY else 0.5
6+
DEADLINE = 1.0
97

108

119
class TestInlineParserSecurity(TestCase):
@@ -119,32 +117,30 @@ def test_repeated_link_suffixes_are_near_linear(self):
119117

120118
def render(size):
121119
text = "[" * size + "a" + "](/u)" * size + "\n"
122-
start = time.process_time()
120+
start = time.perf_counter()
123121
md(text)
124-
return time.process_time() - start
122+
return time.perf_counter() - start
125123

126124
render(200)
127125
small = render(1000)
128126
large = render(2000)
129127

130-
self.assertLess(large, DEADLINE)
131-
self.assertLess(large, small * 3)
128+
self.assertLess(large, small * 3.5 + 0.02)
132129

133130
def test_repeated_unclosed_inline_spoilers_are_near_linear(self):
134131
md = create_markdown(plugins=["spoiler"])
135132

136133
def render(size):
137134
text = ">! a " * size + "\n"
138-
start = time.process_time()
135+
start = time.perf_counter()
139136
md(text)
140-
return time.process_time() - start
137+
return time.perf_counter() - start
141138

142139
render(200)
143140
small = render(1000)
144141
large = render(2000)
145142

146-
self.assertLess(large, DEADLINE)
147-
self.assertLess(large, small * 3)
143+
self.assertLess(large, small * 3.5 + 0.02)
148144

149145
def test_adjacent_ruby_tokens_do_not_recurse_forever(self):
150146
text = "[a(b)]" * 3000 + "\n"

tests/test_security_math.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
1-
import platform
21
import time
32
from unittest import TestCase
43

54
from mistune import create_markdown
65

7-
IS_PYPY = platform.python_implementation() == "PyPy"
8-
9-
106
class TestMathSecurity(TestCase):
117
def test_math_plugin_escapes_math_content(self):
128
md = create_markdown(escape=True, plugins=["math"])
@@ -23,13 +19,12 @@ def test_repeated_inline_math_openers_are_near_linear(self):
2319
md = create_markdown(plugins=["math"])
2420

2521
def render(size):
26-
start = time.process_time()
22+
start = time.perf_counter()
2723
md("$a " * size + "\n")
28-
return time.process_time() - start
24+
return time.perf_counter() - start
2925

3026
render(200)
3127
small = render(1000)
3228
large = render(2000)
3329

34-
self.assertLess(large, 1.0 if IS_PYPY else 0.5)
35-
self.assertLess(large, small * 3)
30+
self.assertLess(large, small * 3.5 + 0.02)

tests/test_security_ref_links.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
1-
import platform
21
import time
32
from unittest import TestCase
43

54
from mistune import create_markdown
65

7-
IS_PYPY = platform.python_implementation() == "PyPy"
8-
9-
106
class TestRefLinkSecurity(TestCase):
117
def test_many_reference_links_return_quickly(self):
12-
repetitions = 500 if IS_PYPY else 3000
13-
deadline = 1.0 if IS_PYPY else 0.5
8+
repetitions = 3000
9+
deadline = 1.0
1410

1511
text = "".join("[a{}]: u\n".format(i) for i in range(repetitions))
1612

0 commit comments

Comments
 (0)