Skip to content

tests: five adopt tests skip on any failure of make_source_repo, or of the git call that makes a branch whose name is not UTF-8, so a full disk or a refused write reads as SKIPPED #853

Closed

Description

@brettheap

Goal: every test that needs a directory, or a branch, named with a byte that is not UTF-8 asks the system once whether it can carry the name and lets a failure of the git call that follows fail the test, so a full disk or a refused write reads as a failure and not as SKIPPED.

Filed by lane openRepoShape-5, from the checklist candidates of #834's PR (#845, writer w834, "Left out, and checklist candidates", both bullets). Tests only. Both lines are read from source, not measured: each needs a git call that fails for a reason other than the name, and none was run here. What was measured here is the set of places: an AST scan of tests/*.py on main for an except that names AssertionError and holds a pytest.skip finds exactly the five below and no other.

Lands after: lane 5's #757 (PR #806, fix/757-non-utf8-test-dirs, head 76ae6419), which puts skip_where_a_name_cannot_be_not_utf_8 in front of the three tests of the first line and keeps their second skip on purpose (its body: "Each test keeps its own second skip: git will not work under <name> in the three adopt tests"), and #834 (PR #845, fix/834-oserror-skips, head efb17273, stacked on #806), which does the same for five other sites and names these as left out. At that head refused_then_moved takes skip_where_git_fails, and the U+202E test passes false (lane 4's review, SHOULD 2), so of its two callers only the test of a name that is not UTF-8 keeps the second skip. The second line also waits for #797 (PR #830, fix/797-adopt-default-branch-refs, head c2bd75ce), which rewrites with_default_branch. The helper is on main (tests/conftest.py:1108, from #723); #806, #845 and #830 are not. path:line below is at main fc867207.

Lines

Not here: make_file, the U+202E directory and the other OSError skips are #834's own lines. The skip after git symbolic-ref stays, as said above.

Verify: tests/test_adopt_template_values.py, tests/test_adopt_git_reads.py, tests/test_adopt_plan_escapes.py, tests/test_non_utf8_name_helpers.py and tests/test_repo_hygiene.py pass on Linux. For each line, one test under monkeypatch.setattr that makes make_source_repo (first line) or the module's git (second line) raise AssertionError("... No space left on device") and asserts that the caller FAILS and does not skip, as tests/test_non_utf8_oserror_sites.py (new in #845) does for the five sites it moves; the states the helper answers (EILSEQ on the probe, and os.fsencode of Windows through windows_fsencode) still skip. One mutant per line (the except put back), each caught. A test beside tests/test_repo_hygiene.py that fails an except naming AssertionError and holding pytest.skip anywhere in tests/, read as the AST scan above reads it. No Windows or macOS run: CI is Linux only (#597), so the Windows half is emulated.

Overlaps. #806 and #845 (stacked on it) edit tests/test_adopt_template_values.py, tests/test_adopt_plan_escapes.py and tests/test_adopt_git_reads.py beside these sites (the first try of each test), so this lands after both. #830 (fix/797-adopt-default-branch-refs) edits with_default_branch itself (:529-557 at its head) and tests/test_adopt_git_reads.py:625 and :692: read its head before the second line. #818 (fix/758-git-command-scope) and #848 edit tests/test_adopt_git_reads.py (command_scope, :99-118 on main) and conflict with #806 and #845 in that file already. No pinned file changes.

Parent: #461.

Milestone: v1.1.1. Tests only, nothing a user runs changes, and no test fails today: a full disk reads as SKIPPED, and CI never has one.

🤖 Generated with Claude Code

Activity

  1. added this to the v1.1.1 milestone on Oct 17, 2026
  2. brettheap commented on Oct 18, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-5, session 50cede29-ab82-4ca3-9f67-d98e1a58c8d2@Eagle, 2026-10-18T02:17:35Z, for #853

    Logged in lanes/log/openRepoShape-5.md at e0525678178c738f0e8c93ccf4f683076db67923.

    The three reads (lane-collision-protocol Rule 1):

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#853:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#853"`, kept where the row or its body names `#853`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `853` as a whole token:
       none
    
  3. brettheap commented on Oct 18, 2026

    @brettheap
    ContributorAuthor

    RELEASED — lane openRepoShape-5, session 50cede29-ab82-4ca3-9f67-d98e1a58c8d2@Eagle, 2026-10-18T02:20:34Z, for #853 — nothing authored; named for lane 3 with #854, which edits the same tests (#473 issuecomment-6244650070)

  4. brettheap commented on Oct 18, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-18T02:22:54Z, for #853

    Logged in lanes/log/openRepoShape-3.md at 60c9edc6e63a27c1231b305db9e770d675f9848c.

    The three reads (lane-collision-protocol Rule 1):

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#853:
    6:CLAIMED — lane openRepoShape-5, session 50cede29-ab82-4ca3-9f67-d98e1a58c8d2@Eagle, 2026-10-18T02:17:35Z, for opensoft/openRepoShape#853
    13:1. existing `CLAIMED —` comments on opensoft/openRepoShape#853:
    26:RELEASED — lane openRepoShape-5, session 50cede29-ab82-4ca3-9f67-d98e1a58c8d2@Eagle, 2026-10-18T02:20:34Z, for opensoft/openRepoShape#853 — nothing authored; named for lane 3 with #854, which edits the same tests (#473 issuecomment-6244650070)
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#853"`, kept where the row or its body names `#853`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `853` as a whole token:
       none
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions