| 259 | self.assertFalse(_testcapi.pyobject_is_unique_temporary_new_object()) |
| 260 | |
| 261 | def pyobject_dump(self, obj, release_gil=False): |
| 262 | pyobject_dump = _testcapi.pyobject_dump |
| 263 | |
| 264 | try: |
| 265 | old_stderr = os.dup(STDERR_FD) |
| 266 | except OSError as exc: |
| 267 | # os.dup(STDERR_FD) is not supported on WASI |
| 268 | self.skipTest(f"os.dup() failed with {exc!r}") |
| 269 | |
| 270 | filename = os_helper.TESTFN |
| 271 | try: |
| 272 | try: |
| 273 | with open(filename, "wb") as fp: |
| 274 | fd = fp.fileno() |
| 275 | os.dup2(fd, STDERR_FD) |
| 276 | pyobject_dump(obj, release_gil) |
| 277 | finally: |
| 278 | os.dup2(old_stderr, STDERR_FD) |
| 279 | os.close(old_stderr) |
| 280 | |
| 281 | with open(filename) as fp: |
| 282 | return fp.read().rstrip() |
| 283 | finally: |
| 284 | os_helper.unlink(filename) |
| 285 | |
| 286 | def test_pyobject_dump(self): |
| 287 | # test string object |