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

Method test_repr_rlock

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

Source from the content-addressed store, hash-verified

1639
1640 @warnings_helper.ignore_fork_in_thread_deprecation_warnings()
1641 def test_repr_rlock(self):
1642 if self.TYPE != 'processes':
1643 self.skipTest('test not appropriate for {}'.format(self.TYPE))
1644
1645 lock = self.RLock()
1646 self.assertEqual('<RLock(None, 0)>', repr(lock))
1647
1648 n = 3
1649 for _ in range(n):
1650 lock.acquire()
1651 self.assertEqual(f'<RLock(MainProcess, {n})>', repr(lock))
1652 for _ in range(n):
1653 lock.release()
1654
1655 t, l = [], []
1656 for i in range(n):
1657 t.append(threading.Thread(target=self._acquire_release,
1658 args=(lock, 0.1, l, i+1),
1659 name=f'T{i+1}'))
1660 t[-1].start()
1661 for t_ in t:
1662 t_.join()
1663 for i in range(n):
1664 self.assertIn(f'<RLock(MainProcess|T{i+1}, {i+1})>', l)
1665
1666 rlock = self.RLock()
1667 t = threading.Thread(target=rlock.acquire)
1668 t.start()
1669 t.join()
1670 self.assertEqual('<RLock(SomeOtherThread, nonzero)>', repr(rlock))
1671
1672 pname = 'P1'
1673 l = multiprocessing.Manager().list()
1674 p = self.Process(target=self._acquire_release,
1675 args=(lock, 0.1, l),
1676 name=pname)
1677 p.start()
1678 p.join()
1679 self.assertEqual(f'<RLock({pname}, 1)>', l[0])
1680
1681 rlock = self.RLock()
1682 p = self.Process(target=self._acquire, args=(rlock,))
1683 p.start()
1684 p.join()
1685 self.assertEqual('<RLock(SomeOtherProcess, nonzero)>', repr(rlock))
1686
1687 def test_rlock(self):
1688 lock = self.RLock()

Callers

nothing calls this directly

Calls 15

startMethod · 0.95
joinMethod · 0.95
skipTestMethod · 0.80
RLockMethod · 0.80
assertInMethod · 0.80
ManagerMethod · 0.80
formatMethod · 0.45
assertEqualMethod · 0.45
acquireMethod · 0.45
releaseMethod · 0.45
appendMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected