def test_add_closing(self, send_response_email_patch): with flask_login_user(self.admin_860): self.request.acknowledge(days=30) self.request.set_agency_request_summary('blah') self.request.set_agency_request_summary_privacy(False) add_closing(self.request.id, self.closing_reasons, self.email_content) send_response_email_patch.assert_called_once_with( self.request.id, response_privacy.RELEASE_AND_PUBLIC, self.email_content, 'Request {} Closed'.format(self.request.id) ) response = self.request.responses.join(Determinations).filter( Determinations.dtype == determination_type.CLOSING).one() self.assertEqual( [ response.request_id, response.privacy, response.dtype, response.reason ], [ self.request.id, response_privacy.RELEASE_AND_PUBLIC, determination_type.CLOSING, format_determination_reasons(self.closing_reasons) ] ) self.assert_response_event(self.request.id, event_type.REQ_CLOSED, response, self.admin_860)
def test_add_denial(self, send_response_email_patch): with flask_login_user(self.admin_860): add_denial(self.request.id, self.denial_reasons, self.email_content) send_response_email_patch.assert_called_once_with( self.request.id, response_privacy.RELEASE_AND_PUBLIC, self.email_content, 'Request {} Closed'.format(self.request.id) ) response = self.request.responses.join(Determinations).filter( Determinations.dtype == determination_type.DENIAL).one() self.assertEqual( [ response.request_id, response.privacy, response.dtype, response.reason ], [ self.request.id, response_privacy.RELEASE_AND_PUBLIC, determination_type.DENIAL, format_determination_reasons(self.denial_reasons) ] ) self.assert_response_event(self.request.id, event_type.REQ_CLOSED, response, self.admin_860)
def test_add_closing_file_release_public(self, send_response_email_patch): request_title_public = self.rf_agency_860.create_request_as_public_user(title_privacy=False) with flask_login_user(self.admin_860): request_title_public.acknowledge(days=30) request_title_public.add_file(privacy=response_privacy.RELEASE_AND_PUBLIC) add_closing(request_title_public.id, self.closing_reasons, self.email_content) send_response_email_patch.assert_called_once_with( request_title_public.id, response_privacy.RELEASE_AND_PUBLIC, self.email_content, 'Request {} Closed'.format(request_title_public.id) ) response = request_title_public.responses.join(Determinations).filter( Determinations.dtype == determination_type.CLOSING).one() self.assertEqual( [ response.request_id, response.privacy, response.dtype, response.reason ], [ request_title_public.id, response_privacy.RELEASE_AND_PUBLIC, determination_type.CLOSING, format_determination_reasons(self.closing_reasons) ] ) self.assert_response_event(request_title_public.id, event_type.REQ_CLOSED, response, self.admin_860)
def test_deny_custom(self): reason_ids = sample(set([r.id for r in Reasons.query.filter_by(type=determination_type.DENIAL).all()]), 3) response_custom = self.request.deny(reason_ids, self.rf.public_user) response = Responses.query.get(response_custom.id) response = Responses.query.get(response.id) self.assertEqual( [ response.request_id, response.privacy, response.dtype, response.reason ], [ self.request.id, response_privacy.RELEASE_AND_PUBLIC, determination_type.DENIAL, format_determination_reasons(reason_ids) ] ) self.assert_response_event(self.request.id, event_type.REQ_CLOSED, response, self.rf.public_user)
def __close(self, close_type, user, reason_ids=None): if reason_ids is None: reasons = "|".join( (r.content for r in Reasons.query.filter_by(type=close_type).order_by( func.random()).limit(random.randrange(1, 6)).all())) else: reasons = format_determination_reasons(reason_ids) self.__update({ "status": request_status.CLOSED, "agency_request_summary_release_date": calendar.addbusdays(datetime.utcnow(), RELEASE_PUBLIC_DAYS) }) response = Determinations( self.request.id, response_privacy.RELEASE_AND_PUBLIC, close_type, reasons, ) create_object(response) self.__create_event(event_type.REQ_CLOSED, response, user) return response