import unittest from threading import Thread from test.support import threading_helper from operator import methodcaller class TestMethodcaller(unittest.TestCase): def test_methodcaller_threading(self): number_of_threads = 10 size = 4_000 mc = methodcaller("append", 2) def work(mc, l, ii): for _ in range(ii): mc(l) worker_threads = [] lists = [] for ii in range(number_of_threads): l = [] lists.append(l) worker_threads.append(Thread(target=work, args=[mc, l, size])) for t in worker_threads: t.start() for t in worker_threads: t.join() for l in lists: assert len(l) == size if __name__ == "__main__": unittest.main()