Skip to content

Commit 4e64a48

Browse files
authoredFeb 24, 2025
Add CI workflow for running unittests. (#74)
1 parent dda58b1 commit 4e64a48

File tree

3 files changed

+56
-17
lines changed

3 files changed

+56
-17
lines changed
 

‎.github/workflows/check_tests.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Check Tests
2+
on: [ pull_request ]
3+
jobs:
4+
test:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: actions/checkout@v4
8+
- name: Set up Python
9+
uses: actions/setup-python@v4
10+
with:
11+
python-version: '3.x' # Specify the Python version you want to use
12+
cache: pip
13+
- name: Install dependencies
14+
run: |
15+
python -m pip install --upgrade pip
16+
pip install pytest
17+
- name: Run tests
18+
run: pytest tests/
19+

‎src/stack_pr/git.py

+13
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@ class GitError(Exception):
1212
pass
1313

1414

15+
username_override = None
16+
17+
18+
def override_username(username: str):
19+
"""Override username for testing purposes. Call with None to reset."""
20+
global username_override
21+
username_override = username
22+
23+
1524
def fetch_checkout_commit(
1625
repo_dir: Path, ref: str, quiet: bool, remote: str = "origin"
1726
):
@@ -182,12 +191,16 @@ def check_gh_installed():
182191
def get_gh_username() -> str:
183192
"""Return the current github username.
184193
194+
If username_override is set, it will be used instead of the actual username.
195+
185196
Returns:
186197
Current github username as a string.
187198
188199
Raises:
189200
GitError: if called outside a git repo, or.
190201
"""
202+
if username_override is not None:
203+
return username_override
191204

192205
user_query = get_command_output(
193206
[

‎tests/test_misc.py

+24-17
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
sys.path.append(str(Path(__file__).parent.parent / "src"))
55

6+
from stack_pr.git import override_username
67
from stack_pr.cli import (
78
get_branch_id,
89
generate_branch_name,
@@ -16,6 +17,7 @@
1617

1718
@pytest.fixture(scope="module")
1819
def username():
20+
override_username("TestBot")
1921
return get_gh_username()
2022

2123

@@ -51,33 +53,38 @@ def test_generate_branch_name():
5153

5254

5355
def test_get_taken_branch_ids():
54-
template = "User/stack/$ID"
56+
template = "$USERNAME/stack/$ID"
5557
refs = [
56-
"refs/remotes/origin/User/stack/104",
57-
"refs/remotes/origin/User/stack/105",
58-
"refs/remotes/origin/User/stack/134",
58+
"refs/remotes/origin/TestBot/stack/104",
59+
"refs/remotes/origin/TestBot/stack/105",
60+
"refs/remotes/origin/TestBot/stack/134",
5961
]
6062
assert get_taken_branch_ids(refs, template) == [104, 105, 134]
61-
refs = ["User/stack/104", "User/stack/105", "User/stack/134"]
63+
refs = ["TestBot/stack/104", "TestBot/stack/105", "TestBot/stack/134"]
6264
assert get_taken_branch_ids(refs, template) == [104, 105, 134]
63-
refs = ["User/stack/104", "AAAA/stack/105", "User/stack/134", "User/stack/bbb"]
65+
refs = [
66+
"TestBot/stack/104",
67+
"AAAA/stack/105",
68+
"TestBot/stack/134",
69+
"TestBot/stack/bbb",
70+
]
6471
assert get_taken_branch_ids(refs, template) == [104, 134]
6572

6673

6774
def test_generate_available_branch_name():
68-
template = "User/stack/$ID"
75+
template = "$USERNAME/stack/$ID"
6976
refs = [
70-
"refs/remotes/origin/User/stack/104",
71-
"refs/remotes/origin/User/stack/105",
72-
"refs/remotes/origin/User/stack/134",
77+
"refs/remotes/origin/TestBot/stack/104",
78+
"refs/remotes/origin/TestBot/stack/105",
79+
"refs/remotes/origin/TestBot/stack/134",
7380
]
74-
assert generate_available_branch_name(refs, template) == "User/stack/135"
81+
assert generate_available_branch_name(refs, template) == "TestBot/stack/135"
7582
refs = []
76-
assert generate_available_branch_name(refs, template) == "User/stack/1"
77-
template = "User-stack-$ID"
83+
assert generate_available_branch_name(refs, template) == "TestBot/stack/1"
84+
template = "$USERNAME-stack-$ID"
7885
refs = [
79-
"refs/remotes/origin/User-stack-104",
80-
"refs/remotes/origin/User-stack-105",
81-
"refs/remotes/origin/User-stack-134",
86+
"refs/remotes/origin/TestBot-stack-104",
87+
"refs/remotes/origin/TestBot-stack-105",
88+
"refs/remotes/origin/TestBot-stack-134",
8289
]
83-
assert generate_available_branch_name(refs, template) == "User-stack-135"
90+
assert generate_available_branch_name(refs, template) == "TestBot-stack-135"

0 commit comments

Comments
 (0)
Please sign in to comment.