dbt-coverage
dbt-coverage copied to clipboard
Make error more informative if target/manifest.json doesn't exist
Planning to submit a PR, just wanted to tee this up first to document the need
Steps to reproduce:
pip install dbt-coverage==0.2.2
git clone https://github.com/dbt-labs/jaffle_shop
git checkout b0b77aa
dbt-coverage compute doc
Line of code throwing the error: https://github.com/slidoapp/dbt-coverage/blob/9f97e6c8fc24e83babc51c2b0584afc88e45308c/dbt_coverage/init.py#L507
Error message:
INFO:root:Loading catalog and manifest files from project dir: .
Traceback (most recent call last):
File "/Users/brentbrewington/.pyenv/versions/3.9.0/bin/dbt-coverage", line 8, in <module>
sys.exit(app())
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/typer/main.py", line 214, in __call__
return get_command(self)(*args, **kwargs)
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/typer/main.py", line 532, in wrapper
return callback(**use_params) # type: ignore
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/dbt_coverage/__init__.py", line 660, in compute
return do_compute(project_dir, cov_report, cov_type, cov_fail_under, cov_fail_compare)
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/dbt_coverage/__init__.py", line 616, in do_compute
catalog = load_files(project_dir)
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/dbt_coverage/__init__.py", line 533, in load_files
catalog = load_catalog(project_dir)
File "/Users/brentbrewington/.pyenv/versions/3.9.0/lib/python3.9/site-packages/dbt_coverage/__init__.py", line 507, in load_catalog
with open(project_dir / 'target/catalog.json') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'target/catalog.json'
actually, in implementing this, found myself needing to throw a FileNotFoundError 😆 - not submitting a PR & will leave this issue up; curious to hear thoughts from maintainers
It would probably be good to instruct the user to run dbt docs generate
first
Hey @bbrewington,
It would probably be good to instruct the user to run dbt docs generate first
If you'd be up for submitting a PR that does that, we'd certainly appreciate it, as that's something we'd like to do as well 🙂