Ejemplo n.º 1
0
 def test_shows_only_own_case(self):
     self.login_permitted_user()
     extra_cases = CaseFactory.create_batch(monitoring=self.monitoring,
                                            size=25)
     response = self.client.get(self.get_url())
     for case in extra_cases:
         self.assertNotContains(response, case.name)
Ejemplo n.º 2
0
class ReceiveEmailTestCase(TestCase):
    def setUp(self):
        self.url = reverse("letters:webhook")
        self.authenticated_url = "{}?secret={}".format(self.url, LETTER_RECEIVE_SECRET)

    def test_required_autentication(self):
        response = self.client.get(self.url)
        self.assertEqual(response.status_code, 405)

    def test_add_to_case(self):
        case = CaseFactory()

        body = self._get_body(case)
        response = self.client.post(
            path=self.authenticated_url,
            data=json.dumps(body),
            content_type="application/imap-to-webhook-v1+json",
        )
        self.assertEqual(response.json()["status"], "OK")

        self.assertEqual(case.record_set.count(), 1)
        letter = case.record_set.all()[0].content_object
        self.assertEqual(
            letter.body, "W dniach 30.07-17.08.2018 r. przebywam na urlopie."
        )
        attachment = letter.attachment_set.all()[0]
        self.assertEqual(letter.eml.read().decode("utf-8"), "12345")
        self.assertEqual(attachment.attachment.read().decode("utf-8"), "12345")
Ejemplo n.º 3
0
 def test_assign_simple_letter(self):
     self.client.login(
         username=UserFactory(is_superuser=True).username, password="******"
     )
     self.case = CaseFactory()
     response = self.client.post(self.get_url(), data={"case": self.case.pk})
     self.assertRedirects(response, reverse("letters:unrecognized_list"))
     self.assertTrue(self.case.record_set.exists())
Ejemplo n.º 4
0
    def test_filter_by_voivodship(self):
        self.case = (CaseFactory()
                     )  # creates a new monitoring (and institution, JST, too)

        response = self.client.get(
            reverse("monitorings:list") +
            "?voivodeship={}".format(self.case.institution.jst.id))
        self.assertContains(response, self.case.monitoring)
        self.assertNotContains(response, self.monitoring)
Ejemplo n.º 5
0
    def setUp(self):
        super().setUp()
        self.user = UserFactory(username="******")
        self.monitoring = self.permission_object = MonitoringFactory()
        self.case = CaseFactory(monitoring=self.monitoring)
        self.from_user = OutgoingLetterFactory(title="Wniosek", record__case=self.case)

        self.letter = self.from_institution = IncomingLetterFactory(
            title="Odpowiedz", record__case=self.case
        )
Ejemplo n.º 6
0
class MonitoringDetailViewTestCase(ObjectMixin, PermissionStatusMixin,
                                   TestCase):
    status_anonymous = 200
    status_no_permission = 200
    permission = []

    def get_url(self):
        return self.monitoring.get_absolute_url()

    def test_details_display(self):
        response = self.client.get(self.get_url())
        self.assertContains(response, self.monitoring)

    def test_display_case(self):
        case = CaseFactory(monitoring=self.monitoring)
        response = self.client.get(self.get_url())
        self.assertContains(response, case)
Ejemplo n.º 7
0
 def test_update_case_number(self):
     self.login_permitted_user()
     new_case = CaseFactory()
     self.assertNotEqual(self.from_user.case, new_case)
     data = {
         "title": "Lorem",
         "body": "Lorem",
         "case": new_case.pk,
         "attachment_set-TOTAL_FORMS": 0,
         "attachment_set-INITIAL_FORMS": 0,
         "attachment_set-MAX_NUM_FORMS": 1,
     }
     resp = self.client.post(self.get_url(), data)
     self.assertEqual(resp.status_code, 302)
     self.from_user.refresh_from_db()
     self.from_user.record.refresh_from_db()
     self.assertEqual(self.from_user.case, new_case)
Ejemplo n.º 8
0
class FixDuplicateMailTestCase(TestCase):
    def test_delete_only_duplicated(self):
        case = CaseFactory()
        in1 = IncomingLetterFactory(record__case=case)
        in2 = IncomingLetterFactory(record__case=case)
        ou1 = OutgoingLetterFactory(record__case=case)
        in_static_id = IncomingLetterFactory(
            record__case=case, eml__msg_id="*****@*****.**"
        )
        in_dupe_id = IncomingLetterFactory(
            record__case=case, eml__msg_id="*****@*****.**"
        )
        stdout = StringIO()
        call_command(
            "fix_duplicate_mail",
            "--monitoring-pk={}".format(case.monitoring.pk),
            "--delete",
            stdout=stdout,
        )
        self.assertTrue(Letter.objects.filter(pk=in1.id).exists())
        self.assertTrue(Letter.objects.filter(pk=in2.id).exists())
        self.assertTrue(Letter.objects.filter(pk=ou1.id).exists())
        self.assertTrue(Letter.objects.filter(pk=in_static_id.id).exists())
        self.assertFalse(Letter.objects.filter(pk=in_dupe_id.id).exists())
Ejemplo n.º 9
0
 def setUp(self):
     super().setUp()
     self.user = UserFactory(username="******")
     self.monitoring = MonitoringFactory()
     self.case = CaseFactory(monitoring=self.monitoring)
Ejemplo n.º 10
0
        )
        stdout = StringIO()
        call_command(
            "fix_duplicate_mail",
            "--monitoring-pk={}".format(case.monitoring.pk),
            "--delete",
            stdout=stdout,
        )
        self.assertTrue(Letter.objects.filter(pk=in1.id).exists())
        self.assertTrue(Letter.objects.filter(pk=in2.id).exists())
        self.assertTrue(Letter.objects.filter(pk=ou1.id).exists())
        self.assertTrue(Letter.objects.filter(pk=in_static_id.id).exists())
        self.assertFalse(Letter.objects.filter(pk=in_dupe_id.id).exists())

    def test_delete_only_when_force_delete(self):
        case = CaseFactory()
        IncomingLetterFactory(record__case=case, eml__msg_id="*****@*****.**")
        in_dupe_id = IncomingLetterFactory(
            record__case=case, eml__msg_id="*****@*****.**"
        )
        stdout = StringIO()
        call_command(
            "fix_duplicate_mail",
            "--monitoring-pk={}".format(case.monitoring.pk),
            stdout=stdout,
        )
        self.assertTrue(Letter.objects.filter(pk=in_dupe_id.id).exists())
        call_command(
            "fix_duplicate_mail",
            "--monitoring-pk={}".format(case.monitoring.pk),
            "--delete",
Ejemplo n.º 11
0
 def setUp(self):
     super().setUp()
     self.case = CaseFactory()
     self.permission_object = self.case.monitoring