def setUp(self): super(AuditTestCaseMixin, self).setUp() EmailTemplate.objects.get_or_create(name='audit/staff_member/invite') EmailTemplate.objects.get_or_create( name='audit/engagement/submit_to_auditor') EmailTemplate.objects.get_or_create( name='audit/engagement/reported_by_auditor') GroupWrapper.invalidate_instances() self.auditor_firm = AuditPartnerFactory() self.auditor = UserFactory( auditor=True, partner_firm=self.auditor_firm, profile__countries_available=[connection.tenant]) self.unicef_user = UserFactory( first_name='UNICEF User', unicef_user=True, profile__countries_available=[connection.tenant]) self.unicef_focal_point = UserFactory( first_name='UNICEF Audit Focal Point', audit_focal_point=True, profile__countries_available=[connection.tenant]) self.usual_user = UserFactory( first_name='Unknown user', profile__countries_available=[connection.tenant])
def test_user_search_view(self): UserFactory() user = UserFactory(email='*****@*****.**') response = self.forced_auth_req('get', '/api/audit/audit-firms/users/', user=self.unicef_user, data={'search': user.email}) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) self.assertIsNone(response.data[0]['auditor_firm'])
def test_global_search(self): UserFactory() user = UserFactory() response = self.forced_auth_req( 'get', '/api/audit/audit-firms/users/', data={'email': user.email}, user=self.unicef_focal_point, ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) self.assertEqual(response.data[0]['email'], user.email)
def test_auditor_search_view(self): UserFactory() auditor = UserFactory(auditor=True, email='*****@*****.**') response = self.forced_auth_req('get', '/api/audit/audit-firms/users/', user=self.unicef_user, data={'search': auditor.email}) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) self.assertEqual( response.data[0]['auditor_firm'], auditor.purchase_order_auditorstaffmember.auditor_firm.id)
def test_submit_filled_report(self): UserFactory(audit_focal_point=True, profile__countries_available=[connection.tenant]) UserFactory(audit_focal_point=True, profile__countries_available=[] ) # user doesn't belong to this country self._init_filled_engagement() mail.outbox = [] self.engagement.submit() self.assertEqual( len(mail.outbox), 2) # self.audit_focal_point + first created focal point
def test_staff_search(self): UserFactory(auditor=True, partner_firm=self.auditor_firm) user = UserFactory(auditor=True, partner_firm=self.auditor_firm, email='*****@*****.**') response = self.forced_auth_req( 'get', '/api/audit/audit-firms/{}/staff-members/'.format( self.auditor_firm.id), data={'search': 'test_unique'}, user=self.unicef_focal_point, ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['count'], 1) self.assertEqual(response.data['results'][0]['user']['email'], user.email)
def test_deactivate_auditor_flow(self): user = UserFactory(auditor=True, partner_firm=self.auditor_firm, is_active=True) list_response = self.forced_auth_req( 'get', '/api/audit/audit-firms/{}/staff-members/'.format( self.auditor_firm.id), user=self.unicef_focal_point) self.assertEqual(list_response.status_code, status.HTTP_200_OK) self.assertIn(user.purchase_order_auditorstaffmember.id, [r['id'] for r in list_response.data['results']]) del_response = self.forced_auth_req( 'delete', '/api/audit/audit-firms/{}/staff-members/{}/'.format( self.auditor_firm.id, user.purchase_order_auditorstaffmember.id), user=self.unicef_focal_point) self.assertEqual(del_response.status_code, status.HTTP_204_NO_CONTENT) deleted_list_response = self.forced_auth_req( 'get', '/api/audit/audit-firms/{}/staff-members/'.format( self.auditor_firm.id), user=self.unicef_focal_point) self.assertEqual(deleted_list_response.status_code, status.HTTP_200_OK) self.assertNotIn( user.purchase_order_auditorstaffmember.id, [r['id'] for r in deleted_list_response.data['results']]) activate_response = self.forced_auth_req( 'patch', '/api/audit/audit-firms/{}/staff-members/{}/'.format( self.auditor_firm.id, user.purchase_order_auditorstaffmember.id), user=self.unicef_focal_point, data={ 'hidden': False, 'user': { 'is_active': True } }) self.assertEqual(activate_response.status_code, status.HTTP_200_OK) updated_list_response = self.forced_auth_req( 'get', '/api/audit/audit-firms/{}/staff-members/'.format( self.auditor_firm.id), user=self.unicef_focal_point) self.assertEqual(updated_list_response.status_code, status.HTTP_200_OK) self.assertIn(user.purchase_order_auditorstaffmember.id, [r['id'] for r in list_response.data['results']])
def test_assign_existing_user(self): user = UserFactory(unicef_user=True) response = self.forced_auth_req( 'post', '/api/audit/audit-firms/{0}/staff-members/'.format( self.auditor_firm.id), data={"user_pk": user.pk}, user=self.unicef_focal_point) self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.data['user']['email'], user.email)
def test_assign_existing_auditor(self): user = UserFactory(auditor=True) response = self.forced_auth_req( 'post', '/api/audit/audit-firms/{0}/staff-members/'.format( self.auditor_firm.id), data={"user_pk": user.pk}, user=self.unicef_focal_point) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertIn('user', response.data) self.assertEqual(response.data['user'][0], 'User is already assigned to auditor firm.')
def test_list_view_without_audit_organization(self): user = UserFactory(unicef_user=True) user.groups.add(Auditor.as_group()) self._test_list(user, [self.engagement, self.second_engagement])
def setUpTestData(cls): cls.user = UserFactory() cls.microassessment = MicroAssessmentFactory() cls.attachment = AttachmentFactory(content_object=cls.microassessment)
def setUpTestData(cls): cls.user = UserFactory() cls.spotcheck = SpotCheckFactory() cls.attachment = AttachmentFactory(content_object=cls.spotcheck)
def setUpTestData(cls): cls.user = UserFactory() cls.engagement = EngagementFactory() cls.attachment = AttachmentFactory(content_object=cls.engagement)
def setUpTestData(cls): cls.user = UserFactory() cls.specialaudit = SpecialAuditFactory() cls.attachment = AttachmentFactory(content_object=cls.specialaudit)