chanzuckerberg / napari-cryoet-data-portal

A napari plugin to list, preview, and open data from the CZ Imaging Institute's CryoET Data Portal
MIT License
9 stars 2 forks source link

Increase test coverage for widgets #8

Closed andy-sweet closed 1 year ago

andy-sweet commented 1 year ago

This adds some basic tests to cover the sub-widgets that make up the main data portal widget.

Note that coverage likely doesn't cover lines that are run via QThreads, which explains some of the uncovered lines: https://github.com/nedbat/coveragepy/issues/582#issuecomment-399708549

This also removes the preview widget, which isn't being actively used, and ignores coverage of test code itself.

codecov[bot] commented 1 year ago

Codecov Report

Merging #8 (d5860f6) into main (4f12593) will increase coverage by 25.43%. The diff coverage is 100.00%.

@@             Coverage Diff             @@
##             main       #8       +/-   ##
===========================================
+ Coverage   62.67%   88.10%   +25.43%     
===========================================
  Files          21       15        -6     
  Lines         801      639      -162     
===========================================
+ Hits          502      563       +61     
+ Misses        299       76      -223     
Impacted Files Coverage Δ
src/napari_cryoet_data_portal/_listing_widget.py 88.23% <100.00%> (+31.37%) :arrow_up:
src/napari_cryoet_data_portal/_metadata_widget.py 80.00% <100.00%> (+22.50%) :arrow_up:
src/napari_cryoet_data_portal/_open_widget.py 81.17% <100.00%> (+21.17%) :arrow_up:
src/napari_cryoet_data_portal/_progress_widget.py 88.23% <100.00%> (+38.23%) :arrow_up:
src/napari_cryoet_data_portal/_uri_widget.py 96.92% <100.00%> (+24.61%) :arrow_up:

... and 7 files with indirect coverage changes

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

andy-sweet commented 1 year ago

LGTM

Just for my curiosity: are the types added/updated here for personal use, or are you planning to add mypy to CI?

Planning to add mypy to CI, though need to ignore a few paths right now partly due to dependencies, but also due to my own bad typing too!