summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Schwarz <felix.schwarz@oss.schwarz.eu>2020-05-05 08:05:56 +0000
committerAarni Koskela <akx@iki.fi>2020-05-05 11:15:20 +0300
commit7bdaa28a55e8d8228d5434effa4b1473ab7b3669 (patch)
tree2482ea28da162aa44c7bc36d8211f1e3eab392ce
parent167b71421f113e2210e4deefef5020402492e5be (diff)
downloadbabel-7bdaa28a55e8d8228d5434effa4b1473ab7b3669.tar.gz
fix tests when using Python 3.9a6
In Python 3.9a6 integer values for future flags were changed to prevent collision with compiler flags. We need to retrieve these at runtime so the test suite works with Python <= 3.8 as well as Python 3.9.
-rw-r--r--tests/test_util.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/tests/test_util.py b/tests/test_util.py
index a6a4450..b9343aa 100644
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -11,6 +11,7 @@
# individuals. For the exact contribution history, see the revision
# history and logs, available at http://babel.edgewall.org/log/.
+import __future__
import unittest
import pytest
@@ -20,6 +21,12 @@ from babel._compat import BytesIO
from babel.util import parse_future_flags
+class _FF:
+ division = __future__.division.compiler_flag
+ print_function = __future__.print_function.compiler_flag
+ with_statement = __future__.with_statement.compiler_flag
+ unicode_literals = __future__.unicode_literals.compiler_flag
+
def test_distinct():
assert list(util.distinct([1, 2, 1, 3, 4, 4])) == [1, 2, 3, 4]
assert list(util.distinct('foobar')) == ['f', 'o', 'b', 'a', 'r']
@@ -70,25 +77,25 @@ def test_parse_encoding_non_ascii():
from __future__ import print_function,
division, with_statement,
unicode_literals
-''', 0x10000 | 0x2000 | 0x8000 | 0x20000),
+''', _FF.print_function | _FF.division | _FF.with_statement | _FF.unicode_literals),
('''
from __future__ import print_function, division
print('hello')
-''', 0x10000 | 0x2000),
+''', _FF.print_function | _FF.division),
('''
from __future__ import print_function, division, unknown,,,,,
print 'hello'
-''', 0x10000 | 0x2000),
+''', _FF.print_function | _FF.division),
('''
from __future__ import (
print_function,
division)
-''', 0x10000 | 0x2000),
+''', _FF.print_function | _FF.division),
('''
from __future__ import \\
print_function, \\
division
-''', 0x10000 | 0x2000),
+''', _FF.print_function | _FF.division),
])
def test_parse_future(source, result):
fp = BytesIO(source.encode('latin-1'))