Description
update-checkout
has a Python unit test suite at utils/update_checkout/tests
. You can run it using utils/update_checkout/run_tests.py
or lit
+ validation-test/Python/update_checkout.swift
. The test suite is centered around an intermediary unittest.TestCase
subclass from which all the effective test classes inherit. This base class is responsible for setting up and tearing down a mock-up environment consisting of a directory of local remotes and a source root — a directory for their clones. Subclasses define test functions that run update-checkout
commands against these mock repositories and perform state checks.
I think a single test function that
- clones the remotes using
update-checkout
- creates some untracked files in several clones
- runs
update-checkout
with--stash
- verifies that the untracked files have indeed been stashed and nothing else happened
would good enough for now (the update/clone tests, if any, are really basic anyway). I would place this function in a new subclass in its own file.
Originally posted by @AnthonyLatsis in #71178 (comment)