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)
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)
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)
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)