Skip to content

Commit 6c3d65a

Browse files
committed
tests/cmd(test[GitBranch]): add tests for track() and ls() filters
why: Verify new branch management functionality what: - Add test_branch_track() for GitBranchCmd.track() - Add test_branch_ls_filters() for ls() filter parameters
1 parent 23ff124 commit 6c3d65a

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

tests/cmd/test_git.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,49 @@ def test_branch_unset_upstream(git_repo: GitSync) -> None:
484484
assert result == "" or "upstream" not in result.lower()
485485

486486

487+
def test_branch_track(git_repo: GitSync) -> None:
488+
"""Test GitBranchCmd.track()."""
489+
branch_name = "tracking-test-branch"
490+
491+
branch = git.GitBranchCmd(path=git_repo.path, branch_name=branch_name)
492+
result = branch.track("origin/master")
493+
494+
# Should create branch tracking origin/master
495+
assert "set up to track" in result.lower()
496+
497+
# Verify branch was created
498+
branches = git_repo.cmd.branches.ls()
499+
branch_names = [b.branch_name for b in branches]
500+
assert branch_name in branch_names
501+
502+
503+
def test_branch_ls_filters(git_repo: GitSync) -> None:
504+
"""Test GitBranchManager.ls() with filter parameters."""
505+
# Test basic ls
506+
branches = git_repo.cmd.branches.ls()
507+
assert len(branches) >= 1
508+
assert any(b.branch_name == "master" for b in branches)
509+
510+
# Test with --all (includes remote-tracking branches)
511+
all_branches = git_repo.cmd.branches.ls(_all=True)
512+
assert len(all_branches) >= len(branches)
513+
514+
# Test with --merged (branches merged into HEAD)
515+
merged = git_repo.cmd.branches.ls(merged="HEAD")
516+
assert isinstance(merged, list)
517+
# master should be merged into HEAD
518+
assert any(b.branch_name == "master" for b in merged)
519+
520+
# Test with --contains (branches containing HEAD commit)
521+
contains = git_repo.cmd.branches.ls(contains="HEAD")
522+
assert isinstance(contains, list)
523+
assert any(b.branch_name == "master" for b in contains)
524+
525+
# Test with --sort
526+
sorted_branches = git_repo.cmd.branches.ls(sort="refname")
527+
assert isinstance(sorted_branches, list)
528+
529+
487530
# =============================================================================
488531
# GitRemoteCmd Tests
489532
# =============================================================================

0 commit comments

Comments
 (0)