(self)
| 1266 | |
| 1267 | @warnings_helper.ignore_fork_in_thread_deprecation_warnings() |
| 1268 | def test_get(self): |
| 1269 | queue = self.Queue() |
| 1270 | child_can_start = self.Event() |
| 1271 | parent_can_continue = self.Event() |
| 1272 | |
| 1273 | proc = self.Process( |
| 1274 | target=self._test_get, |
| 1275 | args=(queue, child_can_start, parent_can_continue) |
| 1276 | ) |
| 1277 | proc.daemon = True |
| 1278 | proc.start() |
| 1279 | |
| 1280 | self.assertEqual(queue_empty(queue), True) |
| 1281 | |
| 1282 | child_can_start.set() |
| 1283 | parent_can_continue.wait() |
| 1284 | |
| 1285 | for _ in support.sleeping_retry(support.SHORT_TIMEOUT): |
| 1286 | if not queue_empty(queue): |
| 1287 | break |
| 1288 | self.assertEqual(queue_empty(queue), False) |
| 1289 | |
| 1290 | self.assertEqual(queue.get_nowait(), 1) |
| 1291 | self.assertEqual(queue.get(True, None), 2) |
| 1292 | self.assertEqual(queue.get(True), 3) |
| 1293 | self.assertEqual(queue.get(timeout=1), 4) |
| 1294 | self.assertEqual(queue.get(), 5) |
| 1295 | |
| 1296 | self.assertEqual(queue_empty(queue), True) |
| 1297 | |
| 1298 | get = TimingWrapper(queue.get) |
| 1299 | get_nowait = TimingWrapper(queue.get_nowait) |
| 1300 | |
| 1301 | self.assertRaises(pyqueue.Empty, get, False) |
| 1302 | self.assertTimingAlmostEqual(get.elapsed, 0) |
| 1303 | |
| 1304 | self.assertRaises(pyqueue.Empty, get, False, None) |
| 1305 | self.assertTimingAlmostEqual(get.elapsed, 0) |
| 1306 | |
| 1307 | self.assertRaises(pyqueue.Empty, get_nowait) |
| 1308 | self.assertTimingAlmostEqual(get_nowait.elapsed, 0) |
| 1309 | |
| 1310 | self.assertRaises(pyqueue.Empty, get, True, TIMEOUT1) |
| 1311 | self.assertTimingAlmostEqual(get.elapsed, TIMEOUT1) |
| 1312 | |
| 1313 | self.assertRaises(pyqueue.Empty, get, False, TIMEOUT2) |
| 1314 | self.assertTimingAlmostEqual(get.elapsed, 0) |
| 1315 | |
| 1316 | self.assertRaises(pyqueue.Empty, get, timeout=TIMEOUT3) |
| 1317 | self.assertTimingAlmostEqual(get.elapsed, TIMEOUT3) |
| 1318 | |
| 1319 | proc.join() |
| 1320 | close_queue(queue) |
| 1321 | |
| 1322 | @classmethod |
| 1323 | def _test_fork(cls, queue): |
nothing calls this directly
no test coverage detected