nedbat / coveragepy

The code coverage tool for Python
https://coverage.readthedocs.io
Apache License 2.0
2.96k stars 428 forks source link

KeyError __init__.py not found on sqldata.py #881

Closed iroussos closed 3 years ago

iroussos commented 4 years ago

Describe the bug Since v5.0 was released on PyPi, we are getting the following error:

... .... ...
690 INTERNALERROR> Traceback (most recent call last):
691 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/_pytest/main.py", line 209, in wrap_session
692 INTERNALERROR>     session.exitstatus = doit(config, session) or 0
693 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/_pytest/main.py", line 249, in _main
694 INTERNALERROR>     config.hook.pytest_runtestloop(session=session)
695 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/pluggy/hooks.py", line 284, in __call__
696 INTERNALERROR>     return self._hookexec(self, self.get_hookimpls(), kwargs)
697 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/pluggy/manager.py", line 67, in _hookexec
698 INTERNALERROR>     return self._inner_hookexec(hook, methods, kwargs)
699 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/pluggy/manager.py", line 61, in <lambda>
700 INTERNALERROR>     firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
701 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 203, in _multicall
702 INTERNALERROR>     gen.send(outcome)
703 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/pytest_cov/plugin.py", line 229, in pytest_runtestloop
704 INTERNALERROR>     self.cov_controller.finish()
705 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/pytest_cov/engine.py", line 167, in finish
706 INTERNALERROR>     self.cov.stop()
707 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/coverage/control.py", line 651, in combine
708 INTERNALERROR>     combine_parallel_data(self._data, aliases=aliases, data_paths=data_paths, strict=strict)
709 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/coverage/data.py", line 117, in combine_parallel_data
710 INTERNALERROR>     data.update(new_data, aliases=aliases)
711 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/coverage/sqldata.py", line 705, in update
712 INTERNALERROR>     for (file, context), numbits in lines.items()
713 INTERNALERROR>   File "/usr/local/lib/python3.6/site-packages/coverage/sqldata.py", line 705, in <listcomp>
714 INTERNALERROR>     for (file, context), numbits in lines.items()
715 INTERNALERROR> KeyError: '/builds/meltano/meltano/src/meltano/__init__.py'

To Reproduce

How can we reproduce the problem? Please be specific.

  1. What version of Python are you using?

Python 3.6

  1. What version of coverage.py are you using? The output of coverage debug sys is helpful.

Latest on PyPi --> 5.0 (coverage-5.0-cp36-cp36m-manylinux1_x86_64.whl)

  1. What versions of what packages do you have installed? The output of pip freeze is helpful.

You can check our full pip install '.[dev]' log in our runner's log together with the pytests and the coverage run afterwards:

https://gitlab.com/meltano/meltano/-/jobs/379770331

  1. What code are you running? Give us a specific commit of a specific repo that we can check out.

https://gitlab.com/meltano/meltano/blob/master/.gitlab/ci/test.gitlab-ci.yml#L46

  1. What commands did you run?

We are running coveragepy as part of our automated tests after our pytests are done:

    - pytest -v --cov-report= --cov meltano -m "$PYTEST_MARKERS"
    - coverage combine .coverage
    - coverage report
    - coverage html

Expected behavior This was running without issues on the latest pre v5.0 stable release.

nedbat commented 4 years ago

Thanks. I worked through how to get the latest versions of everything, and found a single test that reproduces the problem (below). @ionelmc can you take a look to figure out why pytest-cov gets this error when "coverage combine" doesn't?

cd /tmp
mkdir bug881a
cd bug881a
mktmpenv -p python3.6 -n ``` Running virtualenv with interpreter /usr/local/bin/python3.6 Using base prefix '/usr/local/pythonz/pythons/CPython-3.6.9' New python executable in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/bin/python3.6 Also creating executable in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/bin/python Installing setuptools, pip, wheel...done. Requirement already up-to-date: pip in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (19.3.1) Requirement already up-to-date: setuptools in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (42.0.2) This is a temporary environment. It will be deleted when you run 'deactivate'. ```
git clone git@gitlab.com:meltano/meltano.git ``` Cloning into 'meltano'... remote: Enumerating objects: 44002, done. remote: Counting objects: 100% (44002/44002), done. remote: Compressing objects: 100% (13918/13918), done. remote: Total 44002 (delta 29365), reused 43668 (delta 29063) Receiving objects: 100% (44002/44002), 56.93 MiB | 7.43 MiB/s, done. Resolving deltas: 100% (29365/29365), done. ```
cd meltano
git checkout 2f8eee90b6b0548f2019b94ac9a94269ca7ad37e ``` Note: switching to '2f8eee90b6b0548f2019b94ac9a94269ca7ad37e'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 2f8eee90 Merge branch 'update-meltanodata-guide' into 'master' ```
pip install '.[dev]' ``` Processing /private/tmp/bug881a/meltano Collecting aenum==2.1.2 Using cached https://files.pythonhosted.org/packages/0d/46/5b6a6c13fee40f9dfaba84de1394bfe082c0c7d95952ba0ffbd56ce3a3f7/aenum-2.1.2-py3-none-any.whl Collecting idna==2.7 Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl Collecting asn1crypto==0.24.0 Using cached https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl Collecting aiohttp==3.4.4 Using cached https://files.pythonhosted.org/packages/32/00/1c43f609e5ec2007624de25e323bb0ea302787513e56d13b7089f407a6ad/aiohttp-3.4.4-cp36-cp36m-macosx_10_13_x86_64.whl Processing /Users/ned/Library/Caches/pip/wheels/8b/65/b2/9837b4422d13e739c3324c428f1b3aa9e3c3df666bb420e4b3/alembic-1.0.11-py2.py3-none-any.whl Collecting atomicwrites==1.2.1 Using cached https://files.pythonhosted.org/packages/3a/9a/9d878f8d885706e2530402de6417141129a943802c084238914fa6798d97/atomicwrites-1.2.1-py2.py3-none-any.whl Collecting authlib==0.10 Using cached https://files.pythonhosted.org/packages/83/9d/f9fe3ea95658f08bc07b1da74f4015ef0c72aa4b69aa60412650ee9086da/Authlib-0.10-py2.py3-none-any.whl Collecting backoff==1.8.0 Using cached https://files.pythonhosted.org/packages/00/b9/b045f0fe02aa80cefc5a6921d5f7674db58c1658d0e4b888562c15ef6aba/backoff-1.8.0-py2.py3-none-any.whl Collecting bcrypt==3.1.6 Using cached https://files.pythonhosted.org/packages/c8/05/e51ab21c47981eb554a94a7b5af9e61f82640dec99713cd3b359c91ff39e/bcrypt-3.1.6-cp34-abi3-macosx_10_6_intel.whl Processing /Users/ned/Library/Caches/pip/wheels/94/bb/6b/6bbdb83662e32eacca84e22341007a8f5b216cf05acd403086/Cerberus-1.2-cp36-none-any.whl Collecting click==7.0 Using cached https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/48/78/93/a683360b7b5e8017ca55cee728d84338cc8b4972d1832bae5a/click_default_group-1.2.1-cp36-none-any.whl Collecting colorama==0.3.9 Using cached https://files.pythonhosted.org/packages/db/c8/7dcf9dbcb22429512708fe3a547f8b6101c0d02137acbd892505aee57adf/colorama-0.3.9-py2.py3-none-any.whl Collecting gitpython==2.1.11 Using cached https://files.pythonhosted.org/packages/fe/e5/fafe827507644c32d6dc553a1c435cdf882e0c28918a5bab29f7fbebfb70/GitPython-2.1.11-py2.py3-none-any.whl Collecting gunicorn==19.9.0 Using cached https://files.pythonhosted.org/packages/8c/da/b8dd8deb741bff556db53902d4706774c8e1e67265f69528c14c003644e6/gunicorn-19.9.0-py2.py3-none-any.whl Collecting jsonschema==2.6.0 Using cached https://files.pythonhosted.org/packages/77/de/47e35a97b2b05c2fadbec67d44cfcdcd09b8086951b331d82de90d2912da/jsonschema-2.6.0-py2.py3-none-any.whl Collecting markdown==3.0.1 Using cached https://files.pythonhosted.org/packages/7a/6b/5600647404ba15545ec37d2f7f58844d690baf2f81f3a60b862e48f29287/Markdown-3.0.1-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/68/f8/29/b53346a112a07d30a5a84d53f19aeadaa1a474897c0423af91/networkx-2.2-py2.py3-none-any.whl Collecting pandas==0.24.1 Using cached https://files.pythonhosted.org/packages/99/12/bf4c58eea94cea4f91ff931f284146337814fb8546e6eb0b52584446fd52/pandas-0.24.1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl Collecting psycopg2==2.7.7 Using cached https://files.pythonhosted.org/packages/55/94/2e5f88ee63329196da39f1056595b7aa78f6e321f5c832c7946522c4f080/psycopg2-2.7.7-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl Processing /Users/ned/Library/Caches/pip/wheels/90/7e/74/bb640d77775e6b6a78bcc3120f9fea4d2a28b2706de1cff37d/psutil-5.6.3-cp36-cp36m-macosx_10_13_x86_64.whl Collecting pyhumps==0.4.0 Using cached https://files.pythonhosted.org/packages/9a/81/edb34a0f86a0d70f7a00e5f87babb3f7935c2b62ce403a32603e36a6a08a/pyhumps-0.4.0-py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/f7/0e/a4/a6c973e9eff881221ce33c7e2b34ac810a7dd93a6e2623b577/PyPika-0.25.1-cp36-none-any.whl Collecting python-dotenv==0.10.1 Using cached https://files.pythonhosted.org/packages/8c/14/501508b016e7b1ad0eb91bba581e66ad9bfc7c66fcacbb580eaf9bc38458/python_dotenv-0.10.1-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/ad/da/0c/74eb680767247273e2cf2723482cb9c924fe70af57c334513f/PyYAML-3.13-cp36-cp36m-macosx_10_13_x86_64.whl Collecting snowflake-connector-python==1.6.10 Using cached https://files.pythonhosted.org/packages/53/a8/0c56287d4854126f9bf15d2e034137a952cc3e41b4ac64eab3941f3e49ea/snowflake_connector_python-1.6.10-py2.py3-none-any.whl Collecting snowflake-sqlalchemy==1.1.2 Using cached https://files.pythonhosted.org/packages/d3/01/d93a56d3dd4ab86ad4855037d5a32a64f0b0aeca4924eace1fbe2ead7e10/snowflake_sqlalchemy-1.1.2-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/ed/bd/2e/d3874a6e97b8cc71e7e177c8d065ead30f67f380c4d9bbadaa/SQLAlchemy-1.2.12-cp36-cp36m-macosx_10_13_x86_64.whl Collecting fasteners==0.15.0 Using cached https://files.pythonhosted.org/packages/18/bd/55eb2d6397b9c0e263af9d091ebdb756b15756029b3cededf6461481bc63/fasteners-0.15-py2.py3-none-any.whl Collecting flask>=1.0.2 Using cached https://files.pythonhosted.org/packages/9b/93/628509b8d5dc749656a9641f4caf13540e2cdec85276964ff8f43bbb1d3b/Flask-1.1.1-py2.py3-none-any.whl Collecting flask-cors==3.0.7 Using cached https://files.pythonhosted.org/packages/65/cb/683f71ff8daa3aea0a5cbb276074de39f9ab66d3fbb8ad5efb5bb83e90d2/Flask_Cors-3.0.7-py2.py3-none-any.whl Collecting flask-executor==0.9.2 Using cached https://files.pythonhosted.org/packages/4b/10/cdb80faf57b97dc56070906a7966f59f036c7637f9cbec16f6c4b6e52c39/Flask_Executor-0.9.2-py3-none-any.whl Collecting flask-sqlalchemy==2.3.2 Using cached https://files.pythonhosted.org/packages/a1/44/294fb7f6bf49cc7224417cd0637018db9fee0729b4fe166e43e2bbb1f1c8/Flask_SQLAlchemy-2.3.2-py2.py3-none-any.whl Collecting flask-restful==0.3.7 Using cached https://files.pythonhosted.org/packages/17/44/6e490150ee443ca81d5f88b61bb4bbb133d44d75b0b716ebe92489508da4/Flask_RESTful-0.3.7-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/47/5b/8a/15ee071c099f999088e636205bdafd9adf123911c53801fc37/Flask_JWT_Extended-3.17.0-py2.py3-none-any.whl Collecting flatten-dict==0.1.0 Using cached https://files.pythonhosted.org/packages/bf/b8/23fbe4b4b85702fd9f4b55f342f3b59dfe26a554a4350fa79f527d0fd7c6/flatten_dict-0.1.0-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/8b/e4/7d/60eb76ac312e072bc45dec7f48c7c1ba7bc9b45d861cb7ca76/meltano_flask_security-0.1.0-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/cc/75/73/ee5c7152a5225cedaa52eb7fff3b24cef70e317f9a73c6deec/pyhocon-0.3.51-cp36-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/02/26/33/6438c42d37dddfb46189ff9aa170324e4adc3f545f35bd57ce/python_gitlab-1.8.0-cp36-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/5d/1a/1e/0350bb3df3e74215cd91325344cc86c2c691f5306eb4d22c77/simplejson-3.16.0-cp36-cp36m-macosx_10_13_x86_64.whl Collecting urllib3==1.23 Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl Collecting sqlparse==0.3.0 Using cached https://files.pythonhosted.org/packages/ef/53/900f7d2a54557c6a37886585a91336520e5539e3ae2423ff1102daf4f3a7/sqlparse-0.3.0-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/61/1d/d0/04cfe495619be2095eb8d89a31c42adb4e42b76495bc8f784c/watchdog-0.9.0-cp36-cp36m-macosx_10_13_x86_64.whl Collecting asynctest==0.12.2 Using cached https://files.pythonhosted.org/packages/ee/29/9a9289a11b56ceb28dc18fc5b1af9b4223a387269252bb0f349c9da2ed10/asynctest-0.12.2-py3-none-any.whl Collecting black==18.9b0 Using cached https://files.pythonhosted.org/packages/2a/34/9938749f260a861cdd8427d63899e08f9a2a041159a26c2615b02828c973/black-18.9b0-py36-none-any.whl Collecting bumpversion==0.5.3 Using cached https://files.pythonhosted.org/packages/ad/34/49c914829066558ebd405a56647d3ee26856282b8b8c4cd2c0c8de40ff8e/bumpversion-0.5.3-py2.py3-none-any.whl Collecting changelog-cli==0.6.2 Using cached https://files.pythonhosted.org/packages/36/9c/c1d5cf89fa0f6af7fdbdc58c890dbad35647b3d639e8e76a7183ca938862/changelog_cli-0.6.2-py2.py3-none-any.whl Collecting coverage==4.5.4 Using cached https://files.pythonhosted.org/packages/83/26/f9ed9e2b3b4dae24225513b90a51883dc3688486d1fa49af23ea4323b066/coverage-4.5.4-cp36-cp36m-macosx_10_13_x86_64.whl Collecting freezegun==0.3.12 Using cached https://files.pythonhosted.org/packages/81/98/801900ea24536928a99e40a815812c1bc7d7f833d53ec53f216d8330db7d/freezegun-0.3.12-py2.py3-none-any.whl Collecting pytest==4.3.1 Using cached https://files.pythonhosted.org/packages/c8/52/c455e718f19e4fd7126c81b4910ca2431ded6c28b97e36a1a1f5e5ef7247/pytest-4.3.1-py2.py3-none-any.whl Collecting pytest-asyncio==0.10.0 Using cached https://files.pythonhosted.org/packages/55/8e/c45f87e42c2e905082e98753d4cb6b71e6da086c71bf15899a6aee285304/pytest_asyncio-0.10.0-py3-none-any.whl Collecting requests-mock==1.6.0 Using cached https://files.pythonhosted.org/packages/9b/81/f92d33b5c9b0e18a2f25cab7cded9d1acad2906a9a48529d474a2217b5e4/requests_mock-1.6.0-py2.py3-none-any.whl Collecting ipython==7.5.0 Using cached https://files.pythonhosted.org/packages/a9/2e/41dce4ed129057e05a555a7f9629aa2d5f81fdcd4d16568bc24b75a1d2c9/ipython-7.5.0-py3-none-any.whl Collecting pytest-cov==2.6.1 Using cached https://files.pythonhosted.org/packages/7d/b5/92f32674ab954f80499ac73347bfeb815545ea295439c12b0ef3ac8f0975/pytest_cov-2.6.1-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/d3/00/b3/32d613e19e08a739751dd6bf998cfed277728f8b2127ad4eb7/idna_ssl-1.1.0-cp36-none-any.whl Collecting chardet<4.0,>=2.0 Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl Collecting yarl<2.0,>=1.0 Using cached https://files.pythonhosted.org/packages/1f/7f/5543fc5afab0b0c10872bc5dcc973bdc17da6596318ad6b1ff1dbe418d95/yarl-1.4.2-cp36-cp36m-macosx_10_13_x86_64.whl Collecting attrs>=17.3.0 Using cached https://files.pythonhosted.org/packages/a2/db/4313ab3be961f7a763066401fb77f7748373b6094076ae2bda2806988af6/attrs-19.3.0-py2.py3-none-any.whl Collecting multidict<5.0,>=4.0 Using cached https://files.pythonhosted.org/packages/24/d2/e2744d0f7b2337c0ad62103a501a34fc40fa717061d061ae16fc42007cdb/multidict-4.7.1-cp36-cp36m-macosx_10_13_x86_64.whl Collecting async-timeout<4.0,>=3.0 Using cached https://files.pythonhosted.org/packages/e1/1e/5a4441be21b0726c4464f3f23c8b19628372f606755a9d2e46c187e65ec4/async_timeout-3.0.1-py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/98/32/7b/a291926643fc1d1e02593e0d9e247c5a866a366b8343b7aa27/Mako-1.1.0-cp36-none-any.whl Collecting python-dateutil Using cached https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl Collecting python-editor>=0.3 Using cached https://files.pythonhosted.org/packages/c6/d3/201fc3abe391bbae6606e6f1d598c15d367033332bd54352b12f35513717/python_editor-1.0.4-py3-none-any.whl Collecting requests Using cached https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl Collecting cryptography Using cached https://files.pythonhosted.org/packages/6b/4a/ce93178469d4460d6b3a5e648fc1a2f426030f3d30a12d7ed4df73d044de/cryptography-2.8-cp34-abi3-macosx_10_6_intel.whl Collecting cffi>=1.1 Using cached https://files.pythonhosted.org/packages/c1/ae/bcf26260176ca7ea576f4c7ddf8dc2a5397d8792699dc9dce2790851958e/cffi-1.13.2-cp36-cp36m-macosx_10_6_intel.whl Collecting six>=1.4.1 Using cached https://files.pythonhosted.org/packages/65/26/32b8464df2a97e6dd1b656ed26b2c194606c16fe163c695a992b36c11cdf/six-1.13.0-py2.py3-none-any.whl Collecting gitdb2>=2.0.0 Using cached https://files.pythonhosted.org/packages/03/6c/99296f89bad2ef85626e1df9f677acbee8885bb043ad82ad3ed4746d2325/gitdb2-2.0.6-py2.py3-none-any.whl Collecting decorator>=4.3.0 Using cached https://files.pythonhosted.org/packages/8f/b7/f329cfdc75f3d28d12c65980e4469e2fa373f1953f5df6e370e84ea2e875/decorator-4.4.1-py2.py3-none-any.whl Collecting pytz>=2011k Using cached https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl Collecting numpy>=1.12.0 Using cached https://files.pythonhosted.org/packages/22/99/36e3408ae2cb8b72260de4e538196d17736d7fb82a1086cb2c21ee156ddc/numpy-1.17.4-cp36-cp36m-macosx_10_9_x86_64.whl Processing /Users/ned/Library/Caches/pip/wheels/8b/99/a0/81daf51dcd359a9377b110a8a886b3895921802d2fc1b2397e/future-0.18.2-cp36-none-any.whl Collecting azure-storage<=0.36.0,>0.34.2 Using cached https://files.pythonhosted.org/packages/76/26/482c033f8f3a48d16cf75aad91c3e1256856719f4117fabb4696d33aa5da/azure_storage-0.36.0-py2.py3-none-any.whl Collecting botocore<1.12.0,>=1.5.0 Using cached https://files.pythonhosted.org/packages/40/35/0d067799598ea6f251e9314f3ba6e2d31a54b4a373657e3c7e1b02304854/botocore-1.11.9-py2.py3-none-any.whl Collecting azure-nspkg<3 Using cached https://files.pythonhosted.org/packages/cd/a0/76ca6659ae9afd7567fdbb5b9c85e9c9a0b48238cfcacd92525484408f66/azure_nspkg-2.0.0-py2.py3-none-any.whl Collecting azure-common<2 Using cached https://files.pythonhosted.org/packages/00/55/a703923c12cd3172d5c007beda0c1a34342a17a6a72779f8a7c269af0cd6/azure_common-1.1.23-py2.py3-none-any.whl Collecting ijson Using cached https://files.pythonhosted.org/packages/af/be/a71d465a7382a7f2d54018a02ca697303a683faa2319d440f7ace17da049/ijson-2.5.1-cp36-cp36m-macosx_10_6_x86_64.whl Collecting boto3<1.9.0,>=1.4.4 Using cached https://files.pythonhosted.org/packages/da/2b/8eb2830e238b35bbcead3014820e94e633e8098c16bc9977c82364bf80bc/boto3-1.8.9-py2.py3-none-any.whl Collecting pyasn1<0.5.0,>=0.2.1 Using cached https://files.pythonhosted.org/packages/62/1e/a94a8d635fa3ce4cfc7f506003548d0a2447ae76fd5ca53932970fe3053f/pyasn1-0.4.8-py2.py3-none-any.whl Collecting pyasn1-modules<0.3.0,>=0.0.8 Using cached https://files.pythonhosted.org/packages/52/50/bb4cefca37da63a0c52218ba2cb1b1c36110d84dcbae8aa48cd67c5e95c2/pyasn1_modules-0.2.7-py2.py3-none-any.whl Collecting pyjwt Using cached https://files.pythonhosted.org/packages/87/8b/6a9f14b5f781697e51259d81657e6048fd31a113229cf346880bb7545565/PyJWT-1.7.1-py2.py3-none-any.whl Collecting pycryptodomex!=3.5.0,>=3.2 Using cached https://files.pythonhosted.org/packages/ba/72/0ff803aedbf1740b97a99ff626a01c2f5e9a37d978dfd949b7ab318bded4/pycryptodomex-3.9.4-cp36-cp36m-macosx_10_6_intel.whl Collecting certifi Using cached https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl Collecting pyOpenSSL>=16.2.0 Using cached https://files.pythonhosted.org/packages/9e/de/f8342b68fa9e981d348039954657bdf681b2ab93de27443be51865ffa310/pyOpenSSL-19.1.0-py2.py3-none-any.whl Collecting monotonic>=0.1 Using cached https://files.pythonhosted.org/packages/ac/aa/063eca6a416f397bd99552c534c6d11d57f58f2e94c14780f3bbf818c4cf/monotonic-1.5-py2.py3-none-any.whl Collecting Werkzeug>=0.15 Using cached https://files.pythonhosted.org/packages/ce/42/3aeda98f96e85fd26180534d36570e4d18108d62ae36f87694b476b83d6f/Werkzeug-0.16.0-py2.py3-none-any.whl Collecting Jinja2>=2.10.1 Using cached https://files.pythonhosted.org/packages/65/e0/eb35e762802015cab1ccee04e8a277b03f1d8e53da3ec3106882ec42558b/Jinja2-2.10.3-py2.py3-none-any.whl Collecting itsdangerous>=0.24 Using cached https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl Collecting aniso8601>=0.82 Using cached https://files.pythonhosted.org/packages/eb/e4/787e104b58eadc1a710738d4e418d7e599e4e778e52cb8e5d5ef6ddd5833/aniso8601-8.0.0-py2.py3-none-any.whl Collecting pathlib2>=2.3 Using cached https://files.pythonhosted.org/packages/e9/45/9c82d3666af4ef9f221cbb954e1d77ddbb513faf552aea6df5f37f1a4859/pathlib2-2.3.5-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/55/9e/aa/70c7d757fe48a6635bf61d8fe9236a6ad572c562d1178fbc96/Flask_BabelEx-0.9.3-cp36-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/43/75/d8/9599063cf95ad0177c75a3bc625bf0a97139ac55c920eb634f/Flask_Principal-0.4.0-cp36-none-any.whl Collecting Flask-WTF>=0.13.1 Using cached https://files.pythonhosted.org/packages/60/3a/58c629472d10539ae5167dc7c1fecfa95dd7d0b7864623931e3776438a24/Flask_WTF-0.14.2-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/eb/aa/d9/34b8f2f9bce7d06a4d07fd46078770584d5504949ebfa286f5/Flask_Mail-0.9.1-cp36-none-any.whl Collecting passlib>=1.7 Using cached https://files.pythonhosted.org/packages/11/b8/e9a78f3033228013ba8564adad8d0031bf9d39ea3acc3cdb9d55fabeb4ba/passlib-1.7.2-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/39/10/74/d68194e28d5f7a83de5f66e5b2deff5ccbb424fe45e6b0e927/Flask_Login-0.4.1-py2.py3-none-any.whl Collecting pyparsing>=2.0.3 Using cached https://files.pythonhosted.org/packages/c0/0c/fc2e007d9a992d997f04a80125b0f183da7fb554f1de701bbb70a8e7d479/pyparsing-2.4.5-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/0b/04/79/c3b0c3a0266a3cb4376da31e5bfe8bba0c489246968a68e843/pathtools-0.1.2-cp36-none-any.whl Collecting argh>=0.24.1 Using cached https://files.pythonhosted.org/packages/06/1c/e667a7126f0b84aaa1c56844337bf0ac12445d1beb9c8a6199a7314944bf/argh-0.26.2-py2.py3-none-any.whl Collecting toml>=0.9.4 Using cached https://files.pythonhosted.org/packages/a2/12/ced7105d2de62fa7c8fb5fce92cc4ce66b57c95fb875e9318dba7f8c5db0/toml-0.10.0-py2.py3-none-any.whl Collecting appdirs Using cached https://files.pythonhosted.org/packages/56/eb/810e700ed1349edde4cbdc1b2a21e28cdf115f9faf263f6bbf8447c1abf3/appdirs-1.4.3-py2.py3-none-any.whl Collecting more-itertools>=4.0.0; python_version > "2.7" Using cached https://files.pythonhosted.org/packages/68/03/0604cec1ea13c9f063dd50f900d1a36160334dd3cfb01fd0e638f61b46ba/more_itertools-8.0.2-py3-none-any.whl Collecting py>=1.5.0 Using cached https://files.pythonhosted.org/packages/76/bc/394ad449851729244a97857ee14d7cba61ddb268dce3db538ba2f2ba1f0f/py-1.8.0-py2.py3-none-any.whl Requirement already satisfied: setuptools in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pytest==4.3.1->meltano==1.11.2) (42.0.2) Collecting pluggy>=0.7 Using cached https://files.pythonhosted.org/packages/a0/28/85c7aa31b80d150b772fbe4a229487bc6644da9ccb7e427dd8cc60cb8a62/pluggy-0.13.1-py2.py3-none-any.whl Collecting pygments Using cached https://files.pythonhosted.org/packages/be/39/32da3184734730c0e4d3fa3b2b5872104668ad6dc1b5a73d8e477e5fe967/Pygments-2.5.2-py2.py3-none-any.whl Collecting pexpect; sys_platform != "win32" Using cached https://files.pythonhosted.org/packages/0e/3e/377007e3f36ec42f1b84ec322ee12141a9e10d808312e5738f52f80a232c/pexpect-4.7.0-py2.py3-none-any.whl Collecting jedi>=0.10 Using cached https://files.pythonhosted.org/packages/55/54/da994f359e4e7da4776a200e76dbc85ba5fc319eefc22e33d55296d95a1d/jedi-0.15.1-py2.py3-none-any.whl Collecting prompt-toolkit<2.1.0,>=2.0.0 Using cached https://files.pythonhosted.org/packages/87/61/2dfea88583d5454e3a64f9308a686071d58d59a55db638268a6413e1eb6d/prompt_toolkit-2.0.10-py3-none-any.whl Collecting pickleshare Using cached https://files.pythonhosted.org/packages/9a/41/220f49aaea88bc6fa6cba8d05ecf24676326156c23b991e80b3f2fc24c77/pickleshare-0.7.5-py2.py3-none-any.whl Collecting appnope; sys_platform == "darwin" Using cached https://files.pythonhosted.org/packages/87/a9/7985e6a53402f294c8f0e8eff3151a83f1fb901fa92909bb3ff29b4d22af/appnope-0.1.0-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/98/b0/dd/29e28ff615af3dda4c67cab719dd51357597eabff926976b45/backcall-0.1.0-cp36-none-any.whl Collecting traitlets>=4.2 Using cached https://files.pythonhosted.org/packages/ca/ab/872a23e29cec3cf2594af7e857f18b687ad21039c1f9b922fac5b9b142d5/traitlets-4.3.3-py2.py3-none-any.whl Collecting MarkupSafe>=0.9.2 Using cached https://files.pythonhosted.org/packages/f0/00/a6aea33f5598b080b86d6b6d1214b51afe3ffa6100b902d5aa465080083f/MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl Processing /Users/ned/Library/Caches/pip/wheels/f2/9a/90/de94f8556265ddc9d9c8b271b0f63e57b26fb1d67a45564511/pycparser-2.19-py2.py3-none-any.whl Collecting smmap2>=2.0.0 Using cached https://files.pythonhosted.org/packages/55/d2/866d45e3a121ee15a1dc013824d58072fd5c7799c9c34d01378eb262ca8f/smmap2-2.0.5-py2.py3-none-any.whl Collecting jmespath<1.0.0,>=0.7.1 Using cached https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl Collecting docutils>=0.10 Using cached https://files.pythonhosted.org/packages/22/cd/a6aa959dca619918ccb55023b4cb151949c64d4d5d55b3f4ffd7eee0c6e8/docutils-0.15.2-py3-none-any.whl Collecting s3transfer<0.2.0,>=0.1.10 Using cached https://files.pythonhosted.org/packages/d7/14/2a0004d487464d120c9fb85313a75cd3d71a7506955be458eebfe19a6b1d/s3transfer-0.1.13-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/c4/f3/2d/57f871bb1786128515c7c5343fefe345e1df68f4b6317b897d/speaklater-1.3-cp36-none-any.whl Collecting Babel>=1.0 Using cached https://files.pythonhosted.org/packages/2c/60/f2af68eb046c5de5b1fe6dd4743bf42c074f7141fe7b2737d3061533b093/Babel-2.7.0-py2.py3-none-any.whl Processing /Users/ned/Library/Caches/pip/wheels/92/a0/00/8690a57883956a301d91cf4ec999cc0b258b01e3f548f86e89/blinker-1.4-cp36-none-any.whl Collecting WTForms Using cached https://files.pythonhosted.org/packages/9f/c8/dac5dce9908df1d9d48ec0e26e2a250839fa36ea2c602cc4f85ccfeb5c65/WTForms-2.2.1-py2.py3-none-any.whl Collecting importlib-metadata>=0.12; python_version < "3.8" Using cached https://files.pythonhosted.org/packages/e9/71/1a1e0ed0981bb6a67bce55a210f168126b7ebd2065958673797ea66489ca/importlib_metadata-1.3.0-py2.py3-none-any.whl Collecting ptyprocess>=0.5 Using cached https://files.pythonhosted.org/packages/d1/29/605c2cc68a9992d18dada28206eeada56ea4bd07a239669da41674648b6f/ptyprocess-0.6.0-py2.py3-none-any.whl Collecting parso>=0.5.0 Using cached https://files.pythonhosted.org/packages/9b/b0/90353a5ece0987279837835224dead0c424833a224195683e188d384e06b/parso-0.5.2-py2.py3-none-any.whl Collecting wcwidth Using cached https://files.pythonhosted.org/packages/7e/9f/526a6947247599b084ee5232e4f9190a38f398d7300d866af3ab571a5bfe/wcwidth-0.1.7-py2.py3-none-any.whl Collecting ipython-genutils Using cached https://files.pythonhosted.org/packages/fa/bc/9bd3b5c2b4774d5f33b2d544f1460be9df7df2fe42f352135381c347c69a/ipython_genutils-0.2.0-py2.py3-none-any.whl Collecting zipp>=0.5 Using cached https://files.pythonhosted.org/packages/74/3d/1ee25a26411ba0401b43c6376d2316a71addcc72ef8690b101b4ea56d76a/zipp-0.6.0-py2.py3-none-any.whl Building wheels for collected packages: meltano Building wheel for meltano (setup.py) ... done Created wheel for meltano: filename=meltano-1.11.2-cp36-none-any.whl size=1276590 sha256=96d0e574b2c309a4e6bd8cb55422ba125b6b653f967cc5c1913bb8265fa6294b Stored in directory: /private/var/folders/j2/gr3cj3jn63s5q8g3bjvw57hm0000gp/T/pip-ephem-wheel-cache-2g00yjj5/wheels/c5/67/10/9ea13ff52571c0864e01cf2cca5c528b84d7b935dab5a8d479 Successfully built meltano Installing collected packages: aenum, idna, asn1crypto, idna-ssl, chardet, multidict, yarl, attrs, async-timeout, aiohttp, MarkupSafe, Mako, six, python-dateutil, sqlalchemy, python-editor, alembic, atomicwrites, urllib3, certifi, requests, pycparser, cffi, cryptography, authlib, backoff, bcrypt, Cerberus, click, click-default-group, colorama, smmap2, gitdb2, gitpython, gunicorn, jsonschema, markdown, decorator, networkx, pytz, numpy, pandas, psycopg2, psutil, pyhumps, pypika, python-dotenv, pyyaml, future, azure-nspkg, azure-common, azure-storage, jmespath, docutils, botocore, ijson, s3transfer, boto3, pyasn1, pyasn1-modules, pyjwt, pycryptodomex, pyOpenSSL, snowflake-connector-python, snowflake-sqlalchemy, monotonic, fasteners, Werkzeug, Jinja2, itsdangerous, flask, flask-cors, flask-executor, flask-sqlalchemy, aniso8601, flask-restful, flask-jwt-extended, pathlib2, flatten-dict, speaklater, Babel, Flask-BabelEx, blinker, Flask-Principal, WTForms, Flask-WTF, Flask-Mail, passlib, Flask-Login, meltano-flask-security, pyparsing, pyhocon, python-gitlab, simplejson, sqlparse, pathtools, argh, watchdog, asynctest, toml, appdirs, black, bumpversion, changelog-cli, coverage, freezegun, more-itertools, py, zipp, importlib-metadata, pluggy, pytest, pytest-asyncio, requests-mock, pygments, ptyprocess, pexpect, parso, jedi, wcwidth, prompt-toolkit, pickleshare, appnope, backcall, ipython-genutils, traitlets, ipython, pytest-cov, meltano Successfully installed Babel-2.7.0 Cerberus-1.2 Flask-BabelEx-0.9.3 Flask-Login-0.4.1 Flask-Mail-0.9.1 Flask-Principal-0.4.0 Flask-WTF-0.14.2 Jinja2-2.10.3 Mako-1.1.0 MarkupSafe-1.1.1 WTForms-2.2.1 Werkzeug-0.16.0 aenum-2.1.2 aiohttp-3.4.4 alembic-1.0.11 aniso8601-8.0.0 appdirs-1.4.3 appnope-0.1.0 argh-0.26.2 asn1crypto-0.24.0 async-timeout-3.0.1 asynctest-0.12.2 atomicwrites-1.2.1 attrs-19.3.0 authlib-0.10 azure-common-1.1.23 azure-nspkg-2.0.0 azure-storage-0.36.0 backcall-0.1.0 backoff-1.8.0 bcrypt-3.1.6 black-18.9b0 blinker-1.4 boto3-1.8.9 botocore-1.11.9 bumpversion-0.5.3 certifi-2019.11.28 cffi-1.13.2 changelog-cli-0.6.2 chardet-3.0.4 click-7.0 click-default-group-1.2.1 colorama-0.3.9 coverage-4.5.4 cryptography-2.8 decorator-4.4.1 docutils-0.15.2 fasteners-0.15 flask-1.1.1 flask-cors-3.0.7 flask-executor-0.9.2 flask-jwt-extended-3.17.0 flask-restful-0.3.7 flask-sqlalchemy-2.3.2 flatten-dict-0.1.0 freezegun-0.3.12 future-0.18.2 gitdb2-2.0.6 gitpython-2.1.11 gunicorn-19.9.0 idna-2.7 idna-ssl-1.1.0 ijson-2.5.1 importlib-metadata-1.3.0 ipython-7.5.0 ipython-genutils-0.2.0 itsdangerous-1.1.0 jedi-0.15.1 jmespath-0.9.4 jsonschema-2.6.0 markdown-3.0.1 meltano-1.11.2 meltano-flask-security-0.1.0 monotonic-1.5 more-itertools-8.0.2 multidict-4.7.1 networkx-2.2 numpy-1.17.4 pandas-0.24.1 parso-0.5.2 passlib-1.7.2 pathlib2-2.3.5 pathtools-0.1.2 pexpect-4.7.0 pickleshare-0.7.5 pluggy-0.13.1 prompt-toolkit-2.0.10 psutil-5.6.3 psycopg2-2.7.7 ptyprocess-0.6.0 py-1.8.0 pyOpenSSL-19.1.0 pyasn1-0.4.8 pyasn1-modules-0.2.7 pycparser-2.19 pycryptodomex-3.9.4 pygments-2.5.2 pyhocon-0.3.51 pyhumps-0.4.0 pyjwt-1.7.1 pyparsing-2.4.5 pypika-0.25.1 pytest-4.3.1 pytest-asyncio-0.10.0 pytest-cov-2.6.1 python-dateutil-2.8.1 python-dotenv-0.10.1 python-editor-1.0.4 python-gitlab-1.8.0 pytz-2019.3 pyyaml-3.13 requests-2.22.0 requests-mock-1.6.0 s3transfer-0.1.13 simplejson-3.16.0 six-1.13.0 smmap2-2.0.5 snowflake-connector-python-1.6.10 snowflake-sqlalchemy-1.1.2 speaklater-1.3 sqlalchemy-1.2.12 sqlparse-0.3.0 toml-0.10.0 traitlets-4.3.3 urllib3-1.23 watchdog-0.9.0 wcwidth-0.1.7 yarl-1.4.2 zipp-0.6.0 ```
pip install coverage==5.0 pytest-cov==2.8.1 ``` Collecting coverage==5.0 Using cached https://files.pythonhosted.org/packages/87/ca/6ce60557d9f4b76fcca1d801be3e5fd7ce45bc5594ffc03e6ffdee8c7181/coverage-5.0-cp36-cp36m-macosx_10_13_x86_64.whl Collecting pytest-cov==2.8.1 Using cached https://files.pythonhosted.org/packages/b9/54/3673ee8be482f81527678ac894276223b9814bb7262e4f730469bb7bf70e/pytest_cov-2.8.1-py2.py3-none-any.whl Requirement already satisfied: pytest>=3.6 in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pytest-cov==2.8.1) (4.3.1) Requirement already satisfied: py>=1.5.0 in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pytest>=3.6->pytest-cov==2.8.1) (1.8.0) Requirement already satisfied: pluggy>=0.7 in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pytest>=3.6->pytest-cov==2.8.1) (0.13.1) Requirement already satisfied: setuptools in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pytest>=3.6->pytest-cov==2.8.1) (42.0.2) Requirement already satisfied: more-itertools>=4.0.0; python_version > "2.7" in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pytest>=3.6->pytest-cov==2.8.1) (8.0.2) Requirement already satisfied: atomicwrites>=1.0 in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pytest>=3.6->pytest-cov==2.8.1) (1.2.1) Requirement already satisfied: six>=1.10.0 in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pytest>=3.6->pytest-cov==2.8.1) (1.13.0) Requirement already satisfied: attrs>=17.4.0 in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pytest>=3.6->pytest-cov==2.8.1) (19.3.0) Requirement already satisfied: importlib-metadata>=0.12; python_version < "3.8" in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from pluggy>=0.7->pytest>=3.6->pytest-cov==2.8.1) (1.3.0) Requirement already satisfied: zipp>=0.5 in /usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->pluggy>=0.7->pytest>=3.6->pytest-cov==2.8.1) (0.6.0) Installing collected packages: coverage, pytest-cov Found existing installation: coverage 4.5.4 Uninstalling coverage-4.5.4: Successfully uninstalled coverage-4.5.4 Found existing installation: pytest-cov 2.6.1 Uninstalling pytest-cov-2.6.1: Successfully uninstalled pytest-cov-2.6.1 Successfully installed coverage-5.0 pytest-cov-2.8.1 ```
rm -f .coverage .coverage.* ``` zsh: no matches found: .coverage.* ```
pytest -v --cov-report= --cov meltano -k sql_controller ``` ===================================================================== test session starts ====================================================================== platform darwin -- Python 3.6.9, pytest-4.3.1, py-1.8.0, pluggy-0.13.1 -- /usr/local/virtualenvs/tmp-25c2776e1dd6d267/bin/python3.6 cachedir: .pytest_cache rootdir: /private/tmp/bug881a/meltano, inifile: pytest.ini plugins: asyncio-0.10.0, cov-2.8.1, requests-mock-1.6.0 collected 161 items / 160 deselected / 1 selected tests/meltano/api/controllers/test_sql_controller.py::TestSqlController::test_get_sql ERROR [100%] INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/_pytest/main.py", line 209, in wrap_session INTERNALERROR> session.exitstatus = doit(config, session) or 0 INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/_pytest/main.py", line 249, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/pluggy/hooks.py", line 286, in __call__ INTERNALERROR> return self._hookexec(self, self.get_hookimpls(), kwargs) INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/pluggy/manager.py", line 93, in _hookexec INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs) INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/pluggy/manager.py", line 87, in INTERNALERROR> firstresult=hook.spec.opts.get("firstresult") if hook.spec else False, INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/pluggy/callers.py", line 203, in _multicall INTERNALERROR> gen.send(outcome) INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/pytest_cov/plugin.py", line 254, in pytest_runtestloop INTERNALERROR> self.cov_controller.finish() INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/pytest_cov/engine.py", line 197, in finish INTERNALERROR> self.cov.stop() INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/coverage/control.py", line 651, in combine INTERNALERROR> combine_parallel_data(self._data, aliases=aliases, data_paths=data_paths, strict=strict) INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/coverage/data.py", line 117, in combine_parallel_data INTERNALERROR> data.update(new_data, aliases=aliases) INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/coverage/sqldata.py", line 705, in update INTERNALERROR> for (file, context), numbits in lines.items() INTERNALERROR> File "/usr/local/virtualenvs/tmp-25c2776e1dd6d267/lib/python3.6/site-packages/coverage/sqldata.py", line 705, in INTERNALERROR> for (file, context), numbits in lines.items() INTERNALERROR> KeyError: '/private/tmp/bug881a/meltano/src/meltano/__init__.py' =========================================================== 160 deselected, 1 error in 8.06 seconds ============================================================ ```
sashkab commented 4 years ago

Any updates on this? I've just attempted to upgrade to the latest (5.1) version of coverage and run into similar crash. Only difference I've noticed, that path for the src file was in the wrong directory -- function which was tested changed current work dir. Can this be somehow related?

nedbat commented 4 years ago

@sashkab Are you using pytest-cov? Can you give us a way to reproduce your scenario?

sashkab commented 4 years ago

Are you using pytest-cov?

Yes.

Can you give us a way to reproduce your scenario?

I don't think it would be possible, as it is an internal project.

For the record:

test_1  | platform linux -- Python 3.6.10, pytest-4.5.0, py-1.8.1, pluggy-0.13.1
test_1  | plugins: pyq-1.2.0, cov-2.7.1
sashkab commented 4 years ago

Perhaps issue is with the source paths matching in the .coveragerc. Removing one of the paths from the section resulted in successful test run.

nedbat commented 4 years ago

@sashkab thanks, that could be a useful clue. Can you show us your .coveragerc, and what change you made?

sashkab commented 4 years ago

Here is my .coveragerc and I removed whole [paths] section.

[run]
omit = */tests/*
[report]
exclude_lines =
    pragma: no cover
    raise AssertionError
    raise NotImplementedError
    if __name__ == .__main__.:
    ax = plt.gca()

[paths]
source =
    src
    .tox/*/lib/python*/site-packages
    */builds/*/XXX/src
    /tox/*/lib/python*/site-packages
    /code/src

Later I started to add one-by-one and still cannot figure out why/how coverage was able to find source code in the path which is basically tmp_path in pytest.

ionelmc commented 4 years ago

So this only happens if you mess with the CWD from a fixture? Does changing the fixture to be function-scoped and also undo the cwd change in the finalizer make the problem go away?

sashkab commented 4 years ago

@ionelmc code we test will change cwd, not fixtures, and not tests. My understanding this is acceptable and we didn't preserve cwd. Yesterday, I went and found most of these tests and added fixture which preserves cwd. This somewhat helped: on macOS and FreeBSD runners it resolved the INTERNALERROR, but on Linux runners I still end up with the KeyError, and it is path to the projects __init__.py file and unable to figure out where else to look.

Any suggestions on how to debug this further would be appreciated.

ionelmc commented 4 years ago

Maybe you have other places that don't undo the cwd change. I guess pytest-cov could force the right cwd when it invokes coverage, hmmm.

sashkab commented 4 years ago

Maybe you have other places that don't undo the cwd change.

I definitely have, but my project is huge -- taking time to find all of them.

I guess pytest-cov could force the right cwd when it invokes coverage, hmmm.

I guess it might not be needed, as os.getcwd() reports correct path at this point.

sashkab commented 4 years ago

I'm somewhat confused. So I end up in line 117 of data.py with

data.update(new_data, aliases=aliases)

where new_data points to an empty (??) sqlite3 file. How it gets any path here? Is there some kind of magic with aliases?

sqlite> select * from arc;
sqlite> select * from coverage_schema;
7
sqlite> select * from line_bits;
sqlite> select * from tracer;
sqlite> select * from context;
sqlite> select * from file;
sqlite> select * from meta;
sys_argv|['/tmp/pytest-of-gitlab-runner/pytest-8202/test_start_server0_primary_0/gateway', '/tmp/pytest-of-gitlab-runner/pytest-8202/test_start_server0_primary_0/test_config']
version|5.1
when|2020-05-21 16:03:00
has_arcs|0

(sorry, I missed time to step into data.update and too tired to repeat this again. If you can suggest what else should I look for -- will appreciate)

ionelmc commented 4 years ago

Alright, next release of pytest-cov will have a fix.

sashkab commented 4 years ago

Preliminary testing suggests that issue is fixed after upgrading to pytest-cov 2.9.0.

Thanks @ionelmc!

davisagli commented 3 years ago

For what it's worth: I had a similar error which I tracked down to a bug in newrelic's instrumentation of sqlite: https://github.com/newrelic/newrelic-python-agent/issues/179

Strangely, in my case the error started happening when we updated to pytest-cov 2.9.0