Coverage missing for gevent ThreadPool instances · Issue #667 · nedbat/coveragepy (original) (raw)
Originally reported by David Martin (Bitbucket: frostedcheerios, GitHub: Unknown)
The following test file reproduces the bug:
#!python
from gevent import monkey; monkey.patch_all()
from gevent.threadpool import ThreadPool
import unittest
class ThreadPoolTests(unittest.TestCase):
def executor(self):
print('I ran in a real thread!')
return 123
def test_threadpool(self):
pool = ThreadPool(10)
print(pool.spawn(self.executor).get())
pool.kill()
if __name__ == '__main__':
unittest.main()
Running that file gives the following results:
$ coverage run --concurrency=gevent test_threadpool.py && coverage report -m
I ran in a real thread!
123
.
----------------------------------------------------------------------
Ran 1 test in 0.003s
OK
Name Stmts Miss Cover Missing
--------------------------------------------------
test_threadpool.py 13 2 85% 7-8
I'm using the following python, gevent and coverage versions:
$ coverage --version
Coverage.py, version 4.5.1 with C extension
Documentation at https://coverage.readthedocs.io
$ python --version
Python 3.6.5 :: Anaconda, Inc.
$ python -c "import gevent; print(gevent.__version__)"
1.3.3