aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_flufl.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_flufl.py')
-rw-r--r--Lib/test/test_flufl.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/Lib/test/test_flufl.py b/Lib/test/test_flufl.py
index fd264c926bd..d77e481c81d 100644
--- a/Lib/test/test_flufl.py
+++ b/Lib/test/test_flufl.py
@@ -34,6 +34,32 @@ class FLUFLTests(unittest.TestCase):
# parser reports the start of the token
self.assertEqual(cm.exception.offset, 3)
+ def test_barry_as_bdfl_look_ma_with_no_compiler_flags(self):
+ # Check that the future import is handled by the parser
+ # even if the compiler flags are not passed.
+ code = "from __future__ import barry_as_FLUFL;2 {0} 3"
+ compile(code.format('<>'), '<BDFL test>', 'exec')
+ with self.assertRaises(SyntaxError) as cm:
+ compile(code.format('!='), '<FLUFL test>', 'exec')
+ self.assertRegex(str(cm.exception), "with Barry as BDFL, use '<>' instead of '!='")
+ self.assertIn('2 != 3', cm.exception.text)
+ self.assertEqual(cm.exception.filename, '<FLUFL test>')
+ self.assertEqual(cm.exception.lineno, 1)
+ self.assertEqual(cm.exception.offset, len(code) - 4)
+
+ def test_barry_as_bdfl_relative_import(self):
+ code = "from .__future__ import barry_as_FLUFL;2 {0} 3"
+ compile(code.format('!='), '<FLUFL test>', 'exec')
+ with self.assertRaises(SyntaxError) as cm:
+ compile(code.format('<>'), '<BDFL test>', 'exec')
+ self.assertRegex(str(cm.exception), "<BDFL test>")
+ self.assertIn('2 <> 3', cm.exception.text)
+ self.assertEqual(cm.exception.filename, '<BDFL test>')
+ self.assertEqual(cm.exception.lineno, 1)
+ self.assertEqual(cm.exception.offset, len(code) - 4)
+
+
+
if __name__ == '__main__':
unittest.main()