Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a style guide for iris pytest #5785

Merged

Conversation

ESadek-MO
Copy link
Contributor

@ESadek-MO ESadek-MO commented Feb 26, 2024

🚀 Pull Request

Might address #5574?

This is a style guide to offer some consistency on iris' approach to testing.

Copy link

codecov bot commented Feb 26, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Please upload report for BASE (FEATURE_pytest_conversion@00f0e0c). Learn more about missing BASE report.
Report is 1 commits behind head on FEATURE_pytest_conversion.

Additional details and impacted files
@@                     Coverage Diff                      @@
##             FEATURE_pytest_conversion    #5785   +/-   ##
============================================================
  Coverage                             ?   89.83%           
============================================================
  Files                                ?       88           
  Lines                                ?    23315           
  Branches                             ?     4338           
============================================================
  Hits                                 ?    20945           
  Misses                               ?     1644           
  Partials                             ?      726           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@trexfeathers trexfeathers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this @ESadek-MO!

You've definitely captured everything the team discussed offline, and the spirit of compromise is much more realistic than many style guides I've read in the past 💐

Some changes below

docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
@pp-mo pp-mo mentioned this pull request Mar 12, 2024
@ESadek-MO ESadek-MO changed the base branch from main to FEATURE_pytest_conversion March 27, 2024 14:26
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/testing_style_guide.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_testing_index.rst Outdated Show resolved Hide resolved
Copy link
Contributor

@trexfeathers trexfeathers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not done, but it's lunchtime

docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
Copy link
Contributor

@trexfeathers trexfeathers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job reconstructing the true meaning of each step from our rough notes! 💐

docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/converting_from_unittest.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
@ESadek-MO ESadek-MO marked this pull request as ready for review October 31, 2024 17:52
Copy link
Contributor

@trexfeathers trexfeathers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, once the below 3 things are actioned, I will merge 👍

docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
docs/src/developers_guide/contributing_tests.rst Outdated Show resolved Hide resolved
@trexfeathers trexfeathers changed the title Added a draft style guide for iris pytest Added a style guide for iris pytest Nov 1, 2024
@trexfeathers trexfeathers merged commit 3c63662 into SciTools:FEATURE_pytest_conversion Nov 1, 2024
21 checks passed
trexfeathers added a commit that referenced this pull request Nov 1, 2024
* Add pytest-mock dependency (#5811)

* Updated environment lockfiles

* added pytest iris class (#5808)

* added pytest iris class

* actioned majority of review comments

* converted remaining functions to camel_case

* actioned majority of review comments

* make unit/config pytest (#5810)

* Convert all tests to pytest.

* Don't use staticmethod on fixtures.

* Everything in 'TestConcatenate__dask' can use the same sample cubes.

* Spurious parentheses in 'pytest.fixture()'

* Convert all tests to pytest.

* Rewrite `result_path()` for pytest (#5817)

* Rewrite result_path.

* Review comments.

* Configure pytest-mock as pytest required-plugin (#5815)

* pytest migration ruff PT compliance for unit.concatenate (#5823)

* pytest migration for unit.common.test_Lenient (#5822)

* pytest migration for unit.common.lenient.test_Lenient

* assert order

* review actions

* Convert to pytest.

* Better implementation of `_shared_utils.results_path()` - using PyTest `request` (#5827)

* Rewrite result_path to use the pytest request fixture.

* More explicit guidance on the request fixture.

* Convert to pytest.

* Convert to pytest.

* Convert graphics testing conveniences to PyTest (#5832)

* PyTest-compatible check_graphic.

* Demonstrate new check_graphic in test_plot.

* 7c4f700

* Revert "7c4f7003a"

This reverts commit 68f81ac.

* Revert "Demonstrate new check_graphic in test_plot."

This reverts commit 7c4f700.

* Tidy up other unittest references in iris.tests.graphics.

* Tidy up other unittest references in iris.tests.graphics.

* check_graphic_caller docstring example.

* Make check_graphic_caller only accessible from conftest.

* Simplify data fixtures.

* Simplify data fixtures.

* Simplify data fixtures.

* Simplify Mock usage.

* Tidy equality checks.

* Convert to pytest,

* pytest migration for unit.common.lenient.test__lenient_client (#5842)

* pytest migration for unit.common.lenient.test__lenient_client

* review actions

* pytest migration for unit.common.lenient.test__Lenient (#5828)

* pytest migration for unit.common.lenient.test__Lenient

* ruff PT rule compliant

* fixes

* refactor

* assert fixes

* review actions

* Convert to pytest.

* Convert `tests/test_plot` to PyTest (#5839)

* Convert test_plot to PyTest.

* Add explanatory comments.

* Make ruff PT compliant.

* Convert test_quickplot.

* Test aggregate pytest (#5846)

* pytestify test_aggregate_by.

* pytestify test_lazy_aggregate_by.

* pytest migration for unit.common.lenient.test__lenient_service (#5843)

* pytest migration for unit.common.mixin.test__get_valid_standard_name (#5847)

* pytest migration for unit.common.mixin.test_CFVariableMixin (#5849)

* pytest migration for unit.common.lenient.test__qualname (#5845)

* pytest migration for unit.common.lenient.test__qualname

* use setup_method

* use setup fixture

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* pytest migration for unit.common.mixin.test_LimitedAttributeDict (#5851)

* pytest migration for unit.common.mixin.test_LimitedAttributeDict

* use setup_method

* use setup fixture

* pytest migration for unit.common.metadata.test_NamedTupleMeta (#5852)

* Make test_analysis PyTest (#5859)

* Fixes to _shared_utils.

* Make test_analysis.py pytest.

* Make test_analysis_calculus.py pytest.

* Remove np.testing.

* Convert to pytest.

* Convert unit/fileformats/__init__ code to pytest + move to pp_load_rules where it belongs.

* Convert unit/fileformats/pp_load_rules to pytest.

* converted cube directory tests to pytest (#5837)

* converted asserts to pytest

* pytestified and search replaced. Ruffed

* resolved old references

* refactored preexisting setup_methods into _setup

* further changes

* fixed mock and CML assert

* fixed cdl call in shared_utils

* all tests passing

* review changes

* tests passing

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Convert tests in unit/util to pytest (#5853)

* pytestify, and test__coord_regular

* search and replace

* ruff

* fixed most failures

* renamed result dir

* fixed review comments

* whoops, incorrectly called assert_original_metadata with request after removing it

* corrected assert

* Use mocker.spy in place of mock.patch.

* pytest migration for unit.common.metadata.test_AncillaryVariableMetadata (#5854)

* pytest migration for unit.common.metadata.test_AncillaryVariableMetadata

* use setup fixture

* review actions

* Convert `unit.plot` and `.quickplot` to PyTest (#5866)

* Convert tests.unit.plot to PyTest.

* Convert tests.unit.quickplot to PyTest.

* Convert setups to autouse fixtures.

* Convert to Pytest.

* Convert to Pytest.

* Convert to pytest.

* Convert to pytest, move test_rules into /rules.

* Convert to pytest

* Convert remaining graphics tests to PyTest (#5867)

* Convert test_mapping to PyTest.

* Convert integration.plot to PyTest.

* Convert unit/fileformats/structured_array_identification to pytest.

* Review changes.

* pytest migration for unit.common.metadata.test_BaseMetadata (#5868)

* pytest migration for unit.common.metadata.test_BaseMetadata

* review actions

* pytest migration of unit.common.metadata.test_hexdigest (#5874)

* pytest migration of unit.common.metadata.test_metadata_filter (#5875)

* pytest migration for unit.common.metadata.test_CubeMetadata (#5881)

* pytest migration of unit.common.metadata.test_metadata_manager_factory (#5876)

* pytest migration of unit.common.metadata.test_metadata_manager_factory

* review actions

* More root pytest (#5883)

* Convert root test_util to PyTest.

* Convert root test_pp to PyTest.

* Review comments - make tests easier to understand.

* pytest migration of unit.common.metadata.test_CellMeasureMetadata (#5878)

* pytest migration of unit.common.metadata.test_CellMeasureMetadata

* Update lib/iris/tests/unit/common/metadata/test_CellMeasureMetadata.py

Co-authored-by: Patrick Peglar <[email protected]>

* Update lib/iris/tests/unit/common/metadata/test_CellMeasureMetadata.py

Co-authored-by: Patrick Peglar <[email protected]>

* Update lib/iris/tests/unit/common/metadata/test_CellMeasureMetadata.py

Co-authored-by: Patrick Peglar <[email protected]>

* Update lib/iris/tests/unit/common/metadata/test_CellMeasureMetadata.py

Co-authored-by: Patrick Peglar <[email protected]>

* review actions

---------

Co-authored-by: Patrick Peglar <[email protected]>

* pytest migration of unit.common.metadata.test_CoordMetadata (#5880)

* pytest migration of unit.common.metadata.test_CoordMetadata

* review actions

* Update lib/iris/tests/unit/common/metadata/test_CoordMetadata.py

Co-authored-by: Patrick Peglar <[email protected]>

---------

Co-authored-by: Patrick Peglar <[email protected]>

* pytest migration of unit.common.resolve.test_Resolve (#5882)

* pytest migration of unit.common.resolve.test_Resolve

* review actions

* regen lockfiles

* precommit fixes

* fix some test failures

* Added a style guide for iris pytest (#5785)

* Added a draft style guide for iris pytest

* most review comments

* refactored documentation

* fixed doclinks

* reslolved review comments

* removed excess pages

* conversion checklist

* pre-lunch changes

* majority review requests, rough reshuffle of Test Categories

* further reshuffle of Test Categories

* review stuffies

* fixed a coup of review comments

* fixed a doctest failures

* reworded function and class intros

---------

Co-authored-by: Martin Yeo <[email protected]>

* added whatsnew entries (#6211)

* added whatsnew entries

* corrected _ to - in githubname

* whatsnew corrections

---------

Co-authored-by: Martin Yeo <[email protected]>

---------

Co-authored-by: Bill Little <[email protected]>
Co-authored-by: Lockfile bot <[email protected]>
Co-authored-by: stephenworsley <[email protected]>
Co-authored-by: Patrick Peglar <[email protected]>
Co-authored-by: Martin Yeo <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Wright <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants