Skip to content

Commit d51c7a5

Browse files
committed
Add test
1 parent a1e894e commit d51c7a5

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

Tests/modules/system_related/test_os.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
from iptest import IronPythonTestCase, is_osx, is_linux, is_windows, run_test
88

99
class OsTest(IronPythonTestCase):
10+
def setUp(self):
11+
super(OsTest, self).setUp()
12+
self.temp_file = os.path.join(self.temporary_dir, "temp_OSTest_%d.dat" % os.getpid())
13+
14+
def tearDown(self):
15+
self.delete_files(self.temp_file)
16+
return super().tearDown()
17+
1018
def test_strerror(self):
1119
if is_windows:
1220
self.assertEqual(os.strerror(0), "No error")
@@ -29,4 +37,20 @@ def test_strerror(self):
2937
elif is_osx:
3038
self.assertEqual(os.strerror(40), "Message too long")
3139

40+
def test_open_abplus(self):
41+
# equivalent to open(self.temp_file, "ab+"), see also test_file.test_open_abplus
42+
fd = os.open(self.temp_file, os.O_APPEND | os.O_CREAT | os.O_RDWR)
43+
try:
44+
f = open(fd, mode="ab+", closefd=False)
45+
f.write(b"abc")
46+
f.seek(0)
47+
self.assertEqual(f.read(2), b"ab")
48+
f.write(b"def")
49+
self.assertEqual(f.read(2), b"")
50+
f.seek(0)
51+
self.assertEqual(f.read(6), b"abcdef")
52+
f.close()
53+
finally:
54+
os.close(fd)
55+
3256
run_test(__name__)

0 commit comments

Comments
 (0)