Exemple #1
0
class CaseTestCase(TestCase):
    def setUp(self):
        self.object = CaseFactory()

    def test_get_edit_url(self):
        self.assertEqual(
            CaseFactory(pk=50).get_edit_url(), "/sprawy/sprawa-50/edytuj/")

    def test_perm_check(self):
        u1 = UserFactory()
        assign_perm("cases.can_view", u1)

        u2 = UserFactory()
        assign_perm("cases.can_view", u2, self.object)

        self.assertTrue(self.object.perm_check(u1, "can_view"))
        self.assertTrue(self.object.perm_check(u2, "can_view"))
        with self.assertRaises(PermissionDenied):
            self.object.perm_check(UserFactory(), "can_view")

    def test_has_assignees_lifecycle(self):
        user = UserFactory(is_staff=True)
        self.assertFalse(self.object.has_assignees())

        permission = CaseUserObjectPermissionFactory(
            content_object=self.object,
            permission_name="can_send_to_client",
            user=user,
        )
        self.assertTrue(self.object.has_assignees())

        permission.delete()
        self.assertFalse(self.object.has_assignees())

    def test_has_assignees_non_staff(self):
        user = UserFactory(is_staff=False)
        assign_perm("cases.can_send_to_client", user, self.object)
        self.assertFalse(self.object.has_assignees())

    def test_has_assignees_other_case(self):
        user = UserFactory(is_staff=True)
        other_object = CaseFactory()
        assign_perm("cases.can_send_to_client", user, other_object)
        self.assertFalse(self.object.has_assignees())

    def test_status_update_reopen(self):
        self.object.status = Case.STATUS.closed
        self.object.status_update(reopen=False)
        self.assertEqual(self.object.status, Case.STATUS.closed)
        self.object.status_update(reopen=True)
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_status_update_reopen_with_assignee(self):
        assign_perm("cases.can_send_to_client", UserFactory(is_staff=True),
                    self.object)
        self.object.status = Case.STATUS.closed
        self.object.status_update(reopen=False)
        self.assertEqual(self.object.status, Case.STATUS.closed)
        self.object.status_update(reopen=True)
        self.assertEqual(self.object.status, Case.STATUS.assigned)

    def test_update_counters_last_received_default(self):
        self.object.update_counters()
        self.assertEqual(self.object.last_received, None)

    def _make_letter(self):  # Hack for Travis
        o = LetterFactory(case=self.object, created_by__is_staff=False)
        return Letter.objects.get(pk=o.pk)

    def test_update_counters_last_received_setup(self):
        l = self._make_letter()
        self.object.update_counters()
        self.assertEqual(l.created_on, self.object.last_received)

    def test_update_counters_last_received_update(self):
        self._make_letter()
        self.object.update_counters()
        new = self._make_letter()
        self.object.update_counters()
        self.assertEqual(new.created_on, self.object.last_received)

    def test_update_counters_hide_past_deadline(self):
        event = EventFactory(time=timezone.now() - timedelta(days=5),
                             deadline=True,
                             case=self.object)
        self.object.update_counters()
        self.assertEqual(self.object.deadline, None)

    def test_update_counters_show_future_deadline(self):
        event = EventFactory(time=timezone.now() + timedelta(days=5),
                             deadline=True,
                             case=self.object)
        self.object.update_counters()
        self.assertEqual(self.object.deadline, event)
Exemple #2
0
class CaseTestCase(TestCase):
    def setUp(self):
        self.object = CaseFactory()

    def test_get_edit_url(self):
        self.assertEqual(CaseFactory(pk=50).get_edit_url(), '/sprawy/sprawa-50/edytuj/')

    @override_settings(PORADNIA_EMAIL_INPUT='case-(?P<pk>\d+)@example.com')
    def test_get_by_email(self):
        with self.assertRaises(Case.DoesNotExist):
            Case.get_by_email('*****@*****.**')
            Case.get_by_email('*****@*****.**')
        obj = CaseFactory(pk=22)
        obj2 = Case.get_by_email('*****@*****.**')
        self.assertEqual(obj, obj2)

    def test_perm_check(self):
        u1 = UserFactory()
        assign_perm('cases.can_view', u1)

        u2 = UserFactory()
        assign_perm('cases.can_view', u2, self.object)

        self.assertTrue(self.object.perm_check(u1, 'can_view'))
        self.assertTrue(self.object.perm_check(u2, 'can_view'))
        with self.assertRaises(PermissionDenied):
            self.object.perm_check(UserFactory(), 'can_view')

    def test_status_update_initial(self):
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_status_update_still_open(self):
        assign_perm('cases.can_send_to_client', UserFactory(is_staff=False), self.object)
        self.object.status_update()
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_status_update_assigned(self):
        assign_perm('cases.can_send_to_client', UserFactory(is_staff=True), self.object)
        self.object.status_update()
        self.assertEqual(self.object.status, Case.STATUS.assigned)

    def test_status_update_closed(self):
        self.object.status = Case.STATUS.closed
        self.object.status_update()
        self.assertEqual(self.object.status, Case.STATUS.closed)
        self.object.status_update(reopen=True)
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_update_counters_last_received_default(self):
        self.object.update_counters()
        self.assertEqual(self.object.last_received, None)

    def _make_letter(self):  # Hack for Travis
        o = LetterFactory(case=self.object, created_by__is_staff=False)
        return Letter.objects.get(pk=o.pk)

    def test_update_counters_last_received_setup(self):
        l = self._make_letter()
        self.object.update_counters()
        self.assertEqual(l.created_on, self.object.last_received)

    def test_update_counters_last_received_update(self):
        self._make_letter()
        self.object.update_counters()
        new = self._make_letter()
        self.object.update_counters()
        self.assertEqual(new.created_on, self.object.last_received)
Exemple #3
0
class CaseTestCase(TestCase):
    def setUp(self):
        self.object = CaseFactory()

    def test_get_edit_url(self):
        self.assertEqual(CaseFactory(pk=50).get_edit_url(), '/sprawy/sprawa-50/edytuj/')

    def test_perm_check(self):
        u1 = UserFactory()
        assign_perm('cases.can_view', u1)

        u2 = UserFactory()
        assign_perm('cases.can_view', u2, self.object)

        self.assertTrue(self.object.perm_check(u1, 'can_view'))
        self.assertTrue(self.object.perm_check(u2, 'can_view'))
        with self.assertRaises(PermissionDenied):
            self.object.perm_check(UserFactory(), 'can_view')

    def test_status_update_initial(self):
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_status_update_still_open(self):
        assign_perm('cases.can_send_to_client', UserFactory(is_staff=False), self.object)
        self.object.status_update()
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_status_update_assigned(self):
        assign_perm('cases.can_send_to_client', UserFactory(is_staff=True), self.object)
        self.object.status_update()
        self.assertEqual(self.object.status, Case.STATUS.assigned)

    def test_status_update_closed(self):
        self.object.status = Case.STATUS.closed
        self.object.status_update()
        self.assertEqual(self.object.status, Case.STATUS.closed)
        self.object.status_update(reopen=True)
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_update_counters_last_received_default(self):
        self.object.update_counters()
        self.assertEqual(self.object.last_received, None)

    def _make_letter(self):  # Hack for Travis
        o = LetterFactory(case=self.object, created_by__is_staff=False)
        return Letter.objects.get(pk=o.pk)

    def test_update_counters_last_received_setup(self):
        l = self._make_letter()
        self.object.update_counters()
        self.assertEqual(l.created_on, self.object.last_received)

    def test_update_counters_last_received_update(self):
        self._make_letter()
        self.object.update_counters()
        new = self._make_letter()
        self.object.update_counters()
        self.assertEqual(new.created_on, self.object.last_received)

    def test_update_counters_hide_past_deadline(self):
        event = EventFactory(time=timezone.now() - timedelta(days=5), deadline=True, case=self.object)
        self.object.update_counters()
        self.assertEqual(self.object.deadline, None)

    def test_update_counters_show_future_deadline(self):
        event = EventFactory(time=timezone.now() + timedelta(days=5), deadline=True, case=self.object)
        self.object.update_counters()
        self.assertEqual(self.object.deadline, event)
Exemple #4
0
class CaseTestCase(TestCase):
    def setUp(self):
        self.object = CaseFactory()

    def test_get_edit_url(self):
        self.assertEqual(
            CaseFactory(pk=50).get_edit_url(), '/sprawy/sprawa-50/edytuj/')

    @override_settings(PORADNIA_EMAIL_INPUT='case-(?P<pk>\d+)@example.com')
    def test_get_by_email(self):
        with self.assertRaises(Case.DoesNotExist):
            Case.get_by_email('*****@*****.**')
            Case.get_by_email('*****@*****.**')
        obj = CaseFactory(pk=22)
        obj2 = Case.get_by_email('*****@*****.**')
        self.assertEqual(obj, obj2)

    def test_perm_check(self):
        u1 = UserFactory()
        assign_perm('cases.can_view', u1)

        u2 = UserFactory()
        assign_perm('cases.can_view', u2, self.object)

        self.assertTrue(self.object.perm_check(u1, 'can_view'))
        self.assertTrue(self.object.perm_check(u2, 'can_view'))
        with self.assertRaises(PermissionDenied):
            self.object.perm_check(UserFactory(), 'can_view')

    def test_status_update_initial(self):
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_status_update_still_open(self):
        assign_perm('cases.can_send_to_client', UserFactory(is_staff=False),
                    self.object)
        self.object.status_update()
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_status_update_assigned(self):
        assign_perm('cases.can_send_to_client', UserFactory(is_staff=True),
                    self.object)
        self.object.status_update()
        self.assertEqual(self.object.status, Case.STATUS.assigned)

    def test_status_update_closed(self):
        self.object.status = Case.STATUS.closed
        self.object.status_update()
        self.assertEqual(self.object.status, Case.STATUS.closed)
        self.object.status_update(reopen=True)
        self.assertEqual(self.object.status, Case.STATUS.free)

    def test_update_counters_last_received_default(self):
        self.object.update_counters()
        self.assertEqual(self.object.last_received, None)

    def _make_letter(self):  # Hack for Travis
        o = LetterFactory(case=self.object, created_by__is_staff=False)
        return Letter.objects.get(pk=o.pk)

    def test_update_counters_last_received_setup(self):
        l = self._make_letter()
        self.object.update_counters()
        self.assertEqual(l.created_on, self.object.last_received)

    def test_update_counters_last_received_update(self):
        self._make_letter()
        self.object.update_counters()
        new = self._make_letter()
        self.object.update_counters()
        self.assertEqual(new.created_on, self.object.last_received)

    def test_update_counters_hide_past_deadline(self):
        event = EventFactory(time=timezone.now() - timedelta(days=5),
                             deadline=True,
                             case=self.object)
        self.object.update_counters()
        self.assertEqual(self.object.deadline, None)

    def test_update_counters_show_future_deadline(self):
        event = EventFactory(time=timezone.now() + timedelta(days=5),
                             deadline=True,
                             case=self.object)
        self.object.update_counters()
        self.assertEqual(self.object.deadline, event)