@@ -30,6 +30,7 @@ def test_load_auto_approved_user_ids_loads_user_ids(tmp_path):
3030
3131 auto_approved_user_ids = queue_eligibility .load_auto_approved_user_ids (
3232 auto_approved_users_file = auto_approved_users_file ,
33+ base_dir = tmp_path ,
3334 )
3435
3536 assert auto_approved_user_ids == frozenset ({'42013603' , '88998541' })
@@ -61,6 +62,7 @@ def test_load_auto_approved_user_ids_ignores_malformed_entries(tmp_path):
6162
6263 auto_approved_user_ids = queue_eligibility .load_auto_approved_user_ids (
6364 auto_approved_users_file = auto_approved_users_file ,
65+ base_dir = tmp_path ,
6466 )
6567
6668 assert auto_approved_user_ids == frozenset ({'1234' })
@@ -71,8 +73,14 @@ def test_load_auto_approved_user_ids_fails_closed_for_missing_or_bad_file(tmp_pa
7173 bad_file = tmp_path / 'bad.json'
7274 bad_file .write_text ('{' , encoding = 'utf-8' )
7375
74- assert queue_eligibility .load_auto_approved_user_ids (auto_approved_users_file = missing_file ) == frozenset ()
75- assert queue_eligibility .load_auto_approved_user_ids (auto_approved_users_file = bad_file ) == frozenset ()
76+ assert queue_eligibility .load_auto_approved_user_ids (
77+ auto_approved_users_file = missing_file ,
78+ base_dir = tmp_path ,
79+ ) == frozenset ()
80+ assert queue_eligibility .load_auto_approved_user_ids (
81+ auto_approved_users_file = bad_file ,
82+ base_dir = tmp_path ,
83+ ) == frozenset ()
7684
7785
7886def test_load_auto_approved_user_ids_fails_closed_for_non_list_json (tmp_path ):
@@ -82,6 +90,25 @@ def test_load_auto_approved_user_ids_fails_closed_for_non_list_json(tmp_path):
8290
8391 auto_approved_user_ids = queue_eligibility .load_auto_approved_user_ids (
8492 auto_approved_users_file = auto_approved_users_file ,
93+ base_dir = tmp_path ,
94+ )
95+
96+ assert auto_approved_user_ids == frozenset ()
97+
98+
99+ def test_load_auto_approved_user_ids_rejects_path_outside_base_dir (tmp_path ):
100+ base_dir = tmp_path / 'base'
101+ base_dir .mkdir ()
102+ outside_file = write_auto_approved_users_file (tmp_path , [
103+ {
104+ 'user_id' : 42013603 ,
105+ 'username' : 'ReenigneArcher' ,
106+ },
107+ ])
108+
109+ auto_approved_user_ids = queue_eligibility .load_auto_approved_user_ids (
110+ auto_approved_users_file = Path ('..' ) / outside_file .name ,
111+ base_dir = base_dir ,
85112 )
86113
87114 assert auto_approved_user_ids == frozenset ()
@@ -213,10 +240,11 @@ def test_main_writes_queue_eligible_result(tmp_path, monkeypatch):
213240 ])
214241 output_file = tmp_path / 'github_output'
215242 monkeypatch .setenv ('GITHUB_OUTPUT' , str (output_file ))
243+ monkeypatch .chdir (tmp_path )
216244 monkeypatch .setattr (sys , 'argv' , [
217245 'queue_eligibility' ,
218246 '--auto-approved-users-file' ,
219- str ( auto_approved_users_file ) ,
247+ auto_approved_users_file . name ,
220248 '--user-id' ,
221249 '42013603' ,
222250 ])
0 commit comments