diff options
Diffstat (limited to 'Lib/test/test_flufl.py')
-rw-r--r-- | Lib/test/test_flufl.py | 26 |
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() |