| 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") |