66from mergify_cli .ci .scopes import base_detector
77
88
9- def test_detect_base_github_base_ref (
9+ @pytest .mark .parametrize ("event_name" , ["pull_request" , "pull_request_review" , "push" ])
10+ def test_detect_base_from_repository_default_branch (
11+ event_name : str ,
1012 monkeypatch : pytest .MonkeyPatch ,
13+ tmp_path : pathlib .Path ,
1114) -> None :
12- monkeypatch .setenv ("GITHUB_BASE_REF" , "main" )
13- monkeypatch .delenv ("GITHUB_EVENT_PATH" , raising = False )
15+ event_data = {"repository" : {"default_branch" : "main" }}
16+ event_file = tmp_path / "event.json"
17+ event_file .write_text (json .dumps (event_data ))
18+
19+ monkeypatch .setenv ("GITHUB_EVENT_NAME" , event_name )
20+ monkeypatch .setenv ("GITHUB_EVENT_PATH" , str (event_file ))
1421
1522 result = base_detector .detect ()
1623
1724 assert result == base_detector .Base ("main" , is_merge_queue = False )
1825
1926
20- def test_detect_base_from_event_path (
27+ def test_detect_base_from_push_event (
28+ monkeypatch : pytest .MonkeyPatch ,
29+ tmp_path : pathlib .Path ,
30+ ) -> None :
31+ event_data = {"before" : "abc123" }
32+ event_file = tmp_path / "event.json"
33+ event_file .write_text (json .dumps (event_data ))
34+
35+ monkeypatch .setenv ("GITHUB_EVENT_NAME" , "push" )
36+ monkeypatch .setenv ("GITHUB_EVENT_PATH" , str (event_file ))
37+
38+ result = base_detector .detect ()
39+
40+ assert result == base_detector .Base ("abc123" , is_merge_queue = False )
41+
42+
43+ def test_detect_base_from_pull_request_event_path (
2144 monkeypatch : pytest .MonkeyPatch ,
2245 tmp_path : pathlib .Path ,
2346) -> None :
@@ -29,8 +52,8 @@ def test_detect_base_from_event_path(
2952 event_file = tmp_path / "event.json"
3053 event_file .write_text (json .dumps (event_data ))
3154
55+ monkeypatch .setenv ("GITHUB_EVENT_NAME" , "pull_request" )
3256 monkeypatch .setenv ("GITHUB_EVENT_PATH" , str (event_file ))
33- monkeypatch .delenv ("GITHUB_BASE_REF" , raising = False )
3457
3558 result = base_detector .detect ()
3659
@@ -51,16 +74,24 @@ def test_detect_base_merge_queue_override(
5174 event_file = tmp_path / "event.json"
5275 event_file .write_text (json .dumps (event_data ))
5376
77+ monkeypatch .setenv ("GITHUB_EVENT_NAME" , "pull_request" )
5478 monkeypatch .setenv ("GITHUB_EVENT_PATH" , str (event_file ))
5579
5680 result = base_detector .detect ()
5781
5882 assert result == base_detector .Base ("xyz789" , is_merge_queue = True )
5983
6084
61- def test_detect_base_no_info (monkeypatch : pytest .MonkeyPatch ) -> None :
62- monkeypatch .delenv ("GITHUB_EVENT_PATH" , raising = False )
63- monkeypatch .delenv ("GITHUB_BASE_REF" , raising = False )
85+ def test_detect_base_no_info (
86+ tmp_path : pathlib .Path ,
87+ monkeypatch : pytest .MonkeyPatch ,
88+ ) -> None :
89+ event_data : dict [str , str ] = {}
90+ event_file = tmp_path / "event.json"
91+ event_file .write_text (json .dumps (event_data ))
92+
93+ monkeypatch .setenv ("GITHUB_EVENT_NAME" , "pull_request" )
94+ monkeypatch .setenv ("GITHUB_EVENT_PATH" , str (event_file ))
6495
6596 with pytest .raises (
6697 base_detector .BaseNotFoundError ,
0 commit comments