Commit f85bee7a authored by Enrico Zini's avatar Enrico Zini
Browse files

Tested AM unassignment

parent b01c8aa3
...@@ -58,3 +58,41 @@ class TestProcessAMAssign(ProcessFixtureMixin, TestCase): ...@@ -58,3 +58,41 @@ class TestProcessAMAssign(ProcessFixtureMixin, TestCase):
self.assertPermissionDenied(response) self.assertPermissionDenied(response)
self.processes.app.refresh_from_db() self.processes.app.refresh_from_db()
self.assertIsNone(self.processes.app.current_am_assignment) self.assertIsNone(self.processes.app.current_am_assignment)
class TestProcessAMUnassign(ProcessFixtureMixin, TestCase):
@classmethod
def setUpClass(cls):
super(TestProcessAMUnassign, cls).setUpClass()
cls.persons.create("app", status=const.STATUS_DC)
cls.processes.create("app", person=cls.persons.app, applying_for=const.STATUS_DD_U, fd_comment="test")
cls.persons.create("am", status=const.STATUS_DD_NU)
cls.ams.create("am", person=cls.persons.am)
cls.amassignments.create("am", process=cls.processes.app, am=cls.ams.am, assigned_by=cls.persons["fd"], assigned_time=now())
cls.visitor = cls.persons.dc
def test_success(self):
with patch.object(pmodels.Requirement, "permissions_of", return_value={"am_unassign"}):
client = self.make_test_client(self.visitor)
response = client.post(reverse("process_unassign_am", args=[self.processes.app.pk]))
self.assertRedirectMatches(response, reverse("process_req_am_ok", args=[self.processes.app.pk]))
self.processes.app.refresh_from_db()
self.assertIsNone(self.processes.app.current_am_assignment)
assignment = self.amassignments.am
assignment.refresh_from_db()
self.assertEqual(assignment.process, self.processes.app)
self.assertEqual(assignment.am, self.ams.am)
self.assertEqual(assignment.paused, False)
self.assertEqual(assignment.assigned_by, self.persons.fd)
self.assertIsNotNone(assignment.assigned_time)
self.assertEqual(assignment.unassigned_by, self.visitor)
self.assertIsNotNone(assignment.unassigned_time)
def test_forbidden(self):
with patch.object(pmodels.Requirement, "permissions_of", return_value=set()):
client = self.make_test_client(self.visitor)
response = client.post(reverse("process_unassign_am", args=[self.processes.app.pk]))
self.assertPermissionDenied(response)
self.processes.app.refresh_from_db()
self.assertIsNotNone(self.processes.app.current_am_assignment)
...@@ -21,7 +21,7 @@ urlpatterns = [ ...@@ -21,7 +21,7 @@ urlpatterns = [
url(r'^(?P<pk>\d+)/(?P<type>[^/]+)/statement/(?P<st>\d+)/delete$', views.StatementDelete.as_view(), name="process_statement_delete"), url(r'^(?P<pk>\d+)/(?P<type>[^/]+)/statement/(?P<st>\d+)/delete$', views.StatementDelete.as_view(), name="process_statement_delete"),
url(r'^(?P<pk>\d+)/(?P<type>[^/]+)/statement/(?P<st>\d+)/raw$', views.StatementRaw.as_view(), name="process_statement_raw"), url(r'^(?P<pk>\d+)/(?P<type>[^/]+)/statement/(?P<st>\d+)/raw$', views.StatementRaw.as_view(), name="process_statement_raw"),
url(r'^(?P<pk>\d+)/assign_am$', views.AssignAM.as_view(), name="process_assign_am"), url(r'^(?P<pk>\d+)/assign_am$', views.AssignAM.as_view(), name="process_assign_am"),
url(r'^(?P<pk>\d+)/unassign_am$', views.UnassignAM.as_view(), name="process_unassign_am"), # TODO: test url(r'^(?P<pk>\d+)/unassign_am$', views.UnassignAM.as_view(), name="process_unassign_am"),
url(r'^(?P<pk>\d+)/mailbox/download$', views.MailArchive.as_view(), name="process_mailbox_download"), # TODO: test url(r'^(?P<pk>\d+)/mailbox/download$', views.MailArchive.as_view(), name="process_mailbox_download"), # TODO: test
url(r'^(?P<pk>\d+)/mailbox$', views.DisplayMailArchive.as_view(), name="process_mailbox_show"), # TODO: test url(r'^(?P<pk>\d+)/mailbox$', views.DisplayMailArchive.as_view(), name="process_mailbox_show"), # TODO: test
] ]
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment