| import unittest |
| from test.support import is_emscripten |
| |
| if not is_emscripten: |
| raise unittest.SkipTest("Emscripten-only test") |
| |
| from _testinternalcapi import emscripten_set_up_async_input_device |
| from pathlib import Path |
| |
| |
| class EmscriptenAsyncInputDeviceTest(unittest.TestCase): |
| def test_emscripten_async_input_device(self): |
| jspi_supported = emscripten_set_up_async_input_device() |
| p = Path("/dev/blah") |
| self.addCleanup(p.unlink) |
| if not jspi_supported: |
| with open(p, "r") as f: |
| self.assertRaises(OSError, f.readline) |
| return |
| |
| with open(p, "r") as f: |
| for _ in range(10): |
| self.assertEqual(f.readline().strip(), "ab") |
| self.assertEqual(f.readline().strip(), "fi") |
| self.assertEqual(f.readline().strip(), "xy") |