GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||
GeezerVison is showing github.com — test: isolate repository fixtures and restore Windows reference coverage by Byron · Pull Request #2341 · gitpython-developers/GitPython Conversation
|
| File | Description |
|---|---|
test/test_refs.py |
Import PurePosixPath and use it in the revision-argument test parameterization. |
Review effort: Balanced
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Benchmark fingerprints omit harness changes, allowing misleading workload comparisons, while throughput calculations use iteration limits rather than actual processed counts, inflating reported rates.
Review effort: Balanced
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
<!-- agent -->
Restore Windows CI coverage for `PathLike` revision arguments. The test
introduced in `6de90f1c` uses `Path("refs/heads/main")`, which emits
backslashes on Windows. Those are invalid Git reference names, so resolving
`SymbolicReference` fails during ref-name validation in all four
files/reftable and SHA-1/SHA-256 variants. The same failures were already
present in PR #2336, before the unrelated `patch_env()` change in PR #2340.
Use `PurePosixPath` for the test's Git reference names, which use forward
slashes on every platform. It still implements `os.PathLike`, preserving
coverage through `SymbolicReference` and direct and nested `merge_base()`
arguments alongside `PathLikeMock`. Keep native `Path` for filesystem
operations elsewhere in the module and preserve production validation.
Assisted-by: GPT 6.1 Sol
Co-authored-by: GPT 6.1 Sol <[email protected]>
Took a quick look, pretty zoomed out, but think it's a desirable change as finally the test-suite is independent of the input repository or state. <!-- agent --> Make PR and post-merge test results independent of checkout depth, refs, and history. The shared test repository and dependency clone sources previously came from the source checkout, requiring historical objects and a bootstrap script even though setup already used `gix.testtools`. Generate small repositories from scratch through `gix.testtools`, with named root, release, merge, conflict, rename, date, and submodule states. Adapt legacy assertions to those scenarios while retaining merge, serialization, traversal, index, remote, and nested-submodule coverage. Make dirty-submodule removal checks explicit for staged, unstaged, and untracked data, including dry runs. Remove the source-history environment override, dependency factory, checkout lock cleanup, and bootstrap script. The main CI suites now use shallow checkouts and remove source `.git` metadata before pytest. Add a regression that initializes the shared fixture from a source copy without Git metadata, and document the isolation requirement. Hash raw parser samples in cache arguments to avoid archive filename limits on cold runs. Assisted-by: GPT 6.0 Astra Co-authored-by: GPT 6.0 Astra <[email protected]>
<!-- agent --> GitDB tests previously opened the source checkout's `.git` directory or `GITDB_TEST_GIT_REPO_BASE`, making their input depend on clone history. Give each test class a disposable repository generated by a fixture script, with packed history and additional loose objects. Isolate Git configuration and identity during setup and register class cleanup. Run the script with Bash so the standalone suite retains Python 3.8 support without adding a GixPython dependency. Remove the history override and full-depth checkout from dependency CI, remove source `.git` before running the suite, and document the new setup. Use the actual database size when writing a pack instead of the unrelated iteration count, which the smaller fixture exposed. Assisted-by: GPT 6.0 Astra Co-authored-by: GPT 6.0 Astra <[email protected]>
…counts <!-- agent --> Address benchmark review feedback on the generated fixtures. Copilot noted that "performance tests still report their iteration limits of 1,000–10,000 as processed counts" even though the fixture has only 90 packed objects. Use the existing streaming counters and clamp list-based limits to the available SHA count so both totals and throughput reflect completed work. Copilot also requested: "Include the benchmark harness sources in the fingerprint, and add a harness-only change to the digest regression test." Hash the Python sources in `test/performance` alongside `VERSION` and `git`. This prevents comparing different timed workloads that return the same result. Extend the generated source fixture and document the digest scope. Assisted-by: GPT 6.0 Astra Co-authored-by: GPT 6.0 Astra <[email protected]>
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
No active review issues are recorded that would block approval.
No open issues 🎉
Review effort: Balanced
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.