NOAA-GFDL / fre-cli

Python-based command line interface for FRE (FMS Runtime Environment) to compile and run FMS-based models and post-process their output.
GNU Lesser General Public License v3.0
3 stars 7 forks source link

add tests for checking out workflow definitions #136

Open ceblanton opened 1 month ago

ceblanton commented 1 month ago

Is your feature request related to a problem? Please describe. In reviewing !131, the lack of test coverage of fre pp checkout was noted.

Describe the solution you'd like Tests to cover the intended functionality.

Which output branches are acceptable? Any, or only specific ones?

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context Add any other context or screenshots about the feature request here.

cwhitlock-NOAA commented 1 month ago

This is also going to involve a bit of shuffling of fre pp checkout's internal logic to keep what we need for testing separate from what we need for production/sanity.

I'd like to test this with the ability to write to a different directory than /home/$USER/src ; however, we really don't want our users to be able to do that. I'm going to make an internal-to-python function that does most of checkout.py and separate that from a wrapper callable from the command-line that hard-codes that particular path.

ilaflott commented 1 month ago

@ceblanton @cwhitlock-NOAA Let's keep this simple and avoid mission creep. mission creep == large and hard-to-review PRs.

Success on this issue in my option, should be to test the fre pp checkout, as it currently is, in this repository's main branch. When we have sep. workflow branches to checkout (we do not yet), we will write that test.

@cwhitlock-NOAA we do not want to do anything to test the code different from production- the point of testing is to make sure the code is production-ready as-is! writing separate testing-machinery defeats that point.

ceblanton commented 1 month ago

@cwhitlock-NOAA believes that the hard-coded checkout location $HOME/cylc-src/EXPNAME__PLATFORM__TARGET is inherently difficult to test, and that fre pp checkout's internal logic allowed checking out to a specific temporary location, it would be easier to initialize and tear down the test.

I agree with @ilaflott though that we're going for simple test, and mostly want to add a pytest to increase code coverage, not add additional code.