Adding tests for create_from_project on ProjectTemplate api

remotes/origin/enhancement/email-actions
Jesús Espino 2014-04-28 17:19:04 +02:00
parent b087127d6b
commit 39e0e2dcf7
3 changed files with 78 additions and 3 deletions

View File

@ -332,7 +332,7 @@ class ProjectTemplateViewSet(ModelCrudViewSet):
)
template.load_data_from_project(project)
template.save()
return Response(self.serializer_class(template).data)
return Response(self.serializer_class(template).data, status=201)
def get_queryset(self):
domain = get_active_domain()

View File

@ -677,8 +677,6 @@ class ProjectTemplate(models.Model):
"computable": role.computable
})
for membership in Membership.objects.filter(project=project, user=project.owner):
print(membership.id, membership.user, membership.project, membership.email)
owner_membership = Membership.objects.get(project=project, user=project.owner)
self.default_owner_role = owner_membership.role.slug

View File

@ -766,3 +766,80 @@ class ProjectTemplatesTestCase(test.TestCase):
template.delete()
self.client.logout()
def test_create_project_template_from_project_by_anon(self):
data = {
"project_id": 1,
"template_name": "Test",
"template_description": "Test"
}
self.assertEqual(ProjectTemplate.objects.all().count(), 2)
response = self.client.post(reverse("project-templates-create-from-project"), data)
self.assertEqual(response.status_code, 401)
self.assertEqual(ProjectTemplate.objects.all().count(), 2)
response = self.client.post(reverse("project-templates-create-from-project"), data)
self.assertEqual(response.status_code, 401)
self.assertEqual(ProjectTemplate.objects.all().count(), 2)
def test_create_project_template_from_project_by_domain_owner(self):
project = create_project(1, self.user1)
data = {
"project_id": project.id,
"template_description": "Test"
}
self.assertEqual(ProjectTemplate.objects.all().count(), 2)
response = self.client.login(username=self.user1.username,
password=self.user1.username)
self.assertTrue(response)
response = self.client.post(reverse("project-templates-create-from-project"), data)
self.assertEqual(response.status_code, 400)
self.assertEqual(ProjectTemplate.objects.all().count(), 2)
data = {
"template_name": "Test",
"template_description": "Test"
}
response = self.client.post(reverse("project-templates-create-from-project"), data)
self.assertEqual(response.status_code, 400)
self.assertEqual(ProjectTemplate.objects.all().count(), 2)
data = {
"project_id": project.id,
"template_name": "Test",
"template_description": "Test"
}
response = self.client.post(reverse("project-templates-create-from-project"), data)
self.assertEqual(response.status_code, 201)
self.assertEqual(ProjectTemplate.objects.all().count(), 3)
ProjectTemplate.objects.get(slug="test").delete()
self.client.logout()
def test_create_project_template_from_project_by_not_domain_owner(self):
data = {
"project_id": 1,
"template_name": "Test",
"template_description": "Test"
}
self.assertEqual(ProjectTemplate.objects.all().count(), 2)
response = self.client.login(username=self.user2.username,
password=self.user2.username)
self.assertTrue(response)
response = self.client.post(reverse("project-templates-create-from-project"), data)
self.assertEqual(response.status_code, 403)
self.assertEqual(ProjectTemplate.objects.all().count(), 2)
response = self.client.post(reverse("project-templates-create-from-project"), data)
self.assertEqual(response.status_code, 403)
self.assertEqual(ProjectTemplate.objects.all().count(), 2)
self.client.logout()