MCPcopy Index your code
hub / github.com/python/cpython / test_repr_lock

Method test_repr_lock

Lib/test/_test_multiprocessing.py:1550–1596  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1548
1549 @warnings_helper.ignore_fork_in_thread_deprecation_warnings()
1550 def test_repr_lock(self):
1551 if self.TYPE != 'processes':
1552 self.skipTest('test not appropriate for {}'.format(self.TYPE))
1553
1554 lock = self.Lock()
1555 self.assertEqual(f'<Lock(owner=None)>', repr(lock))
1556
1557 lock.acquire()
1558 self.assertEqual(f'<Lock(owner=MainProcess)>', repr(lock))
1559 lock.release()
1560
1561 tname = 'T1'
1562 l = []
1563 t = threading.Thread(target=self._acquire,
1564 args=(lock, l),
1565 name=tname)
1566 t.start()
1567 time.sleep(0.1)
1568 self.assertEqual(f'<Lock(owner=MainProcess|{tname})>', l[0])
1569 lock.release()
1570
1571 t = threading.Thread(target=self._acquire,
1572 args=(lock,),
1573 name=tname)
1574 t.start()
1575 time.sleep(0.1)
1576 self.assertEqual('<Lock(owner=SomeOtherThread)>', repr(lock))
1577 lock.release()
1578
1579 pname = 'P1'
1580 l = multiprocessing.Manager().list()
1581 p = self.Process(target=self._acquire,
1582 args=(lock, l),
1583 name=pname)
1584 p.start()
1585 p.join()
1586 self.assertEqual(f'<Lock(owner={pname})>', l[0])
1587
1588 lock = self.Lock()
1589 event = self.Event()
1590 p = self.Process(target=self._acquire_event,
1591 args=(lock, event),
1592 name='P2')
1593 p.start()
1594 event.wait()
1595 self.assertEqual(f'<Lock(owner=SomeOtherProcess)>', repr(lock))
1596 p.terminate()
1597
1598 def test_lock(self):
1599 lock = self.Lock()

Callers

nothing calls this directly

Calls 15

acquireMethod · 0.95
releaseMethod · 0.95
startMethod · 0.95
waitMethod · 0.95
terminateMethod · 0.95
skipTestMethod · 0.80
LockMethod · 0.80
ManagerMethod · 0.80
EventMethod · 0.80
formatMethod · 0.45
assertEqualMethod · 0.45
sleepMethod · 0.45

Tested by

no test coverage detected