Exemplo n.º 1
0
    def test_compliance_visit_case_all_applicable_statuses_setable(
            self, status_to_set):
        compliance_case = ComplianceVisitCaseFactory(
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN))
        PeoplePresentFactory(visit_case=compliance_case)
        url = reverse("cases:case", kwargs={"pk": compliance_case.id})
        data = {"status": status_to_set}
        response = self.client.patch(url, data=data, **self.gov_headers)

        compliance_case.refresh_from_db()
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(compliance_case.status.status, status_to_set)
    def test_query_sends_email_to_each_application_submitter_site(
            self, mock_client):
        """
        When a GOV user submits a valid query to a compliance visit case
        Then the request is successful and the query is saved
        And an email is sent to each user that submitted a valid application
        on that site which has a licence
        """
        compliance_site_case = ComplianceVisitCaseFactory(
            site_case=self.compliance_case,
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN),
        )

        url = reverse("cases:case_ecju_queries",
                      kwargs={"pk": compliance_site_case.id})

        response = self.client.post(url, self.data, **self.gov_headers)
        response_data = response.json()
        ecju_query = EcjuQuery.objects.get()

        self.assertEqual(status.HTTP_201_CREATED, response.status_code)
        self.assertEqual(response_data["ecju_query_id"], str(ecju_query.id))
        self.assertEqual(ecju_query.question, self.data["question"])
        self.assertEqual(mock_client.send_email.call_count, 2)
Exemplo n.º 3
0
    def test_get_compliance_visit_case(self):
        comp_case = ComplianceVisitCaseFactory(
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN))

        url = reverse("compliance:visit_case", kwargs={"pk": comp_case.id})
        response = self.client.get(url, **self.gov_headers)
        response_data = response.json()

        self._validate_comp_visit(response_data, comp_case)
    def test_exporter_get_visit_details(self):
        self.exporter_user.set_role(self.organisation, self.exporter_super_user_role)
        comp_visit_1 = ComplianceVisitCaseFactory(
            organisation=self.organisation, status=get_case_status_by_status(CaseStatusEnum.OPEN)
        )
        comp_visit_1.case_officer = self.gov_user
        comp_visit_1.save()

        url = reverse("compliance:exporter_visit_case_detail", kwargs={"pk": comp_visit_1.id})
        response = self.client.get(url, **self.exporter_headers)

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        response_data = response.json()

        self.assertEqual(response_data["id"], str(comp_visit_1.id))
        self.assertEqual(response_data["reference_code"], comp_visit_1.reference_code)
        self.assertEqual(response_data["visit_date"], comp_visit_1.visit_date.strftime("%Y-%m-%d"))
        self.assertEqual(response_data["case_officer_first_name"], comp_visit_1.case_officer.first_name)
        self.assertEqual(response_data["case_officer_last_name"], comp_visit_1.case_officer.last_name)
    def test_delete_people_present(self):
        comp_case = ComplianceVisitCaseFactory(
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN))
        person = PeoplePresentFactory(visit_case=comp_case)

        self.assertTrue(CompliancePerson.objects.exists())
        url = reverse("compliance:person_present", kwargs={"pk": person.id})
        response = self.client.delete(url, **self.gov_headers)

        self.assertTrue(response.status_code, status.HTTP_200_OK)
        self.assertFalse(CompliancePerson.objects.exists())
    def test_exporter_get_compliance_visits(self):
        self.exporter_user.set_role(self.organisation, self.exporter_super_user_role)
        comp_visit_1 = ComplianceVisitCaseFactory(
            organisation=self.organisation, status=get_case_status_by_status(CaseStatusEnum.OPEN)
        )
        comp_site_case = comp_visit_1.site_case

        comp_visit_2 = ComplianceVisitCaseFactory(
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN),
            site_case=comp_site_case,
        )
        comp_visit_2.case_officer = self.gov_user
        comp_visit_2.save()

        url = reverse("compliance:exporter_visit_case_list", kwargs={"pk": comp_site_case.id})
        response = self.client.get(url, **self.exporter_headers)

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        response_data = response.json()["results"]

        self.assertEqual(len(response_data), 2)

        self.compare_compliance_visit_list_details(response_data[0], comp_visit_1)
        self.compare_compliance_visit_list_details(response_data[1], comp_visit_2)
    def test_get_people_present(self):
        comp_case = ComplianceVisitCaseFactory(
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN))
        person1 = PeoplePresentFactory(visit_case=comp_case)
        person2 = PeoplePresentFactory(visit_case=comp_case)

        url = reverse("compliance:people_present", kwargs={"pk": comp_case.id})
        response = self.client.get(url, **self.gov_headers)
        response_data = response.json()["results"]

        for person in response_data:
            self.assertIn(person["id"], [str(person1.id), str(person2.id)])
Exemplo n.º 8
0
    def test_update_compliance_visit_case(self, field, data, key):
        comp_case = ComplianceVisitCaseFactory(
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN))
        json = {field: data}
        url = reverse("compliance:visit_case", kwargs={"pk": comp_case.id})
        response = self.client.patch(url, json, **self.gov_headers)
        response_data = response.json()

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        if key:
            self.assertEqual(response_data[field]["key"], data)
        else:
            self.assertEqual(response_data[field], data)
    def test_update_people_present(self):
        comp_case = ComplianceVisitCaseFactory(
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN))
        person = PeoplePresentFactory(visit_case=comp_case)

        data = {"name": "new_name", "job_title": "anotherjob"}

        url = reverse("compliance:person_present", kwargs={"pk": person.id})
        response = self.client.patch(url, data, **self.gov_headers)
        response_data = response.json()

        self.assertTrue(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response_data["name"], data["name"])
        self.assertEqual(response_data["job_title"], data["job_title"])
Exemplo n.º 10
0
    def test_compliance_visit_case_other_statuses_can_not_be_set(
            self, status_to_set):
        self.gov_user.role = self.super_user_role
        self.gov_user.save()
        compliance_case = ComplianceVisitCaseFactory(
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN))

        url = reverse("cases:case", kwargs={"pk": compliance_case.id})
        data = {"status": status_to_set}
        response = self.client.patch(url, data=data, **self.gov_headers)

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(response.json().get("errors")["status"][0],
                         strings.Statuses.BAD_STATUS)
    def test_create_people_present(self):
        comp_case = ComplianceVisitCaseFactory(
            organisation=self.organisation,
            status=get_case_status_by_status(CaseStatusEnum.OPEN))

        post_person = {"name": "joe", "job_title": "fisher"}
        data = {"people_present": [post_person]}

        url = reverse("compliance:people_present", kwargs={"pk": comp_case.id})
        response = self.client.post(url, data, **self.gov_headers)
        response_data = response.json()

        self.assertTrue(response.status_code, status.HTTP_200_OK)
        person = response_data["people_present"][0]
        self.assertEqual(person["name"], post_person["name"])
        self.assertEqual(person["job_title"], post_person["job_title"])