ai-content-maker/.venv/Lib/site-packages/numba/tests/test_sys_stdin_assignment.py

68 lines
1.6 KiB
Python

import sys
import unittest
from numba import njit
@njit
def f0(a, b):
return a + b
@njit
def f1(begin1, end1, begin2, end2):
if begin1 > begin2: return f1(begin2, end2, begin1, end1)
return end1 + 1 >= begin2
@njit
def f0_2(a, b):
return a + b
@njit
def f1_2(begin1, end1, begin2, end2):
if begin1 > begin2: return f1_2(begin2, end2, begin1, end1)
return end1 + 1 >= begin2
class TestSysStdinAssignment(unittest.TestCase):
def test_no_reassignment_of_stdout(self):
"""
https://github.com/numba/numba/issues/3027
Older versions of colorama break stdout/err when recursive functions
are compiled.
This test should work irrespective of colorama version, or indeed its
presence. If the version is too low, it should be disabled and the test
should work anyway, if it is a sufficiently high version or it is not
present, it should work anyway.
"""
originally = sys.stdout, sys.stderr
try:
sys.stdout = None
f0(0, 1) # Not changed stdout?
self.assertEqual(sys.stdout, None)
f1(0, 1, 2, 3) # Not changed stdout?
self.assertEqual(sys.stdout, None)
sys.stderr = None
f0_2(0, 1) # Not changed stderr?
self.assertEqual(sys.stderr, None)
f1_2(0, 1, 2, 3) # Not changed stderr?
self.assertEqual(sys.stderr, None)
finally:
sys.stdout, sys.stderr = originally
self.assertNotEqual(sys.stderr, None)
self.assertNotEqual(sys.stdout, None)
if __name__ == '__main__':
unittest.main()