File tree Expand file tree Collapse file tree
tests/unit/features/workflows/core Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -153,6 +153,9 @@ def is_approved(self) -> bool:
153153 return self .is_approved_via_environment ()
154154 return self .is_approved_via_project ()
155155
156+ def has_approvals (self ) -> bool :
157+ return self .approvals .filter (approved_at__isnull = False ).exists ()
158+
156159 def is_approved_via_project (self ) -> bool :
157160 return self .project .minimum_change_request_approvals is None or (
158161 self .approvals .filter (approved_at__isnull = False ).count ()
Original file line number Diff line number Diff line change @@ -141,6 +141,42 @@ def test_change_request_is_approved__minimum_approvals_is_none__returns_true( #
141141 assert result is True
142142
143143
144+ def test_change_request_has_approvals__approved_approval__returns_true (
145+ change_request_no_required_approvals : ChangeRequest ,
146+ ) -> None :
147+ # Given
148+ approver = FFAdminUser .objects .create (email = "approver@example.com" )
149+ ChangeRequestApproval .objects .create (
150+ user = approver ,
151+ change_request = change_request_no_required_approvals ,
152+ approved_at = timezone .now (),
153+ )
154+
155+ # When
156+ result = change_request_no_required_approvals .has_approvals ()
157+
158+ # Then
159+ assert result is True
160+
161+
162+ def test_change_request_has_approvals__pending_approval_only__returns_false (
163+ change_request_no_required_approvals : ChangeRequest ,
164+ ) -> None :
165+ # Given
166+ assignee = FFAdminUser .objects .create (email = "assignee@example.com" )
167+ ChangeRequestApproval .objects .create (
168+ user = assignee ,
169+ change_request = change_request_no_required_approvals ,
170+ approved_at = None ,
171+ )
172+
173+ # When
174+ result = change_request_no_required_approvals .has_approvals ()
175+
176+ # Then
177+ assert result is False
178+
179+
144180def test_change_request_commit__not_approved__raises_exception ( # type: ignore[no-untyped-def]
145181 change_request_1_required_approvals ,
146182):
You can’t perform that action at this time.
0 commit comments