@@ -983,6 +983,37 @@ async def test_pr_review_approved(labels):
983
983
assert gh .post_data == []
984
984
985
985
986
+ @pytest .mark .asyncio
987
+ @pytest .mark .parametrize ("labels" , ([], [{"name" : Label .AWAITING_REVIEW }]))
988
+ async def test_pr_review_approved_without_any_changes (labels ):
989
+ # Issue #10
990
+ remove_label = urllib .parse .quote (Label .AWAITING_REVIEW )
991
+ data = {
992
+ "action" : "submitted" ,
993
+ "review" : {
994
+ "state" : "approved" ,
995
+ "author_association" : "member" ,
996
+ },
997
+ "pull_request" : {
998
+ "labels" : labels ,
999
+ "issue_url" : issue_url ,
1000
+ },
1001
+ "installation" : {"id" : MOCK_INSTALLATION_ID },
1002
+ }
1003
+ event = sansio .Event (data , event = "pull_request_review" , delivery_id = "1" )
1004
+ delete = {f"{ labels_url } /{ remove_label } " : {}}
1005
+ gh = MockGitHubAPI (delete = delete )
1006
+ await pull_requests .router .dispatch (event , gh )
1007
+ if labels :
1008
+ assert f"{ labels_url } /{ remove_label } " in gh .delete_url
1009
+ assert gh .delete_data == [{}]
1010
+ else :
1011
+ assert gh .delete_url == []
1012
+ assert gh .delete_data == []
1013
+ assert gh .post_url == []
1014
+ assert gh .post_data == []
1015
+
1016
+
986
1017
# Test conditions for when to add and remove `Label.AWAITING_REVIEW` label:
987
1018
# NOTE: All conditions assumes the PR has been already been labeled AWAITING_REVIEW when
988
1019
# it was opened.
@@ -1126,3 +1157,25 @@ async def test_changes_requested_label_removed():
1126
1157
assert gh .post_data == []
1127
1158
assert gh .delete_url == []
1128
1159
assert gh .delete_data == []
1160
+
1161
+
1162
+ @pytest .mark .asyncio
1163
+ async def test_awaiting_review_label_removed ():
1164
+ # Issue #10
1165
+ data = {
1166
+ "action" : "unlabeled" ,
1167
+ "pull_request" : {
1168
+ "labels" : [],
1169
+ "issue_url" : issue_url ,
1170
+ },
1171
+ "label" : {"name" : Label .AWAITING_REVIEW },
1172
+ "installation" : {"id" : MOCK_INSTALLATION_ID },
1173
+ }
1174
+ event = sansio .Event (data , event = "pull_request" , delivery_id = "1" )
1175
+ gh = MockGitHubAPI ()
1176
+ await pull_requests .router .dispatch (event , gh )
1177
+ # No label is added or removed.
1178
+ assert gh .post_url == []
1179
+ assert gh .post_data == []
1180
+ assert gh .delete_url == []
1181
+ assert gh .delete_data == []
0 commit comments