Improve attachments factories and fix tests related to storage refactor.
parent
def314e0e2
commit
6224a9d4ce
|
@ -99,6 +99,7 @@ class UserStoryAttachmentFactory(Factory):
|
||||||
project = factory.SubFactory("tests.factories.ProjectFactory")
|
project = factory.SubFactory("tests.factories.ProjectFactory")
|
||||||
owner = factory.SubFactory("tests.factories.UserFactory")
|
owner = factory.SubFactory("tests.factories.UserFactory")
|
||||||
content_object = factory.SubFactory("tests.factories.UserStoryFactory")
|
content_object = factory.SubFactory("tests.factories.UserStoryFactory")
|
||||||
|
attached_file = factory.django.FileField(data=b"File contents")
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = "attachments.Attachment"
|
model = "attachments.Attachment"
|
||||||
|
@ -109,6 +110,7 @@ class TaskAttachmentFactory(Factory):
|
||||||
project = factory.SubFactory("tests.factories.ProjectFactory")
|
project = factory.SubFactory("tests.factories.ProjectFactory")
|
||||||
owner = factory.SubFactory("tests.factories.UserFactory")
|
owner = factory.SubFactory("tests.factories.UserFactory")
|
||||||
content_object = factory.SubFactory("tests.factories.TaskFactory")
|
content_object = factory.SubFactory("tests.factories.TaskFactory")
|
||||||
|
attached_file = factory.django.FileField(data=b"File contents")
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = "attachments.Attachment"
|
model = "attachments.Attachment"
|
||||||
|
@ -119,15 +121,18 @@ class IssueAttachmentFactory(Factory):
|
||||||
project = factory.SubFactory("tests.factories.ProjectFactory")
|
project = factory.SubFactory("tests.factories.ProjectFactory")
|
||||||
owner = factory.SubFactory("tests.factories.UserFactory")
|
owner = factory.SubFactory("tests.factories.UserFactory")
|
||||||
content_object = factory.SubFactory("tests.factories.IssueFactory")
|
content_object = factory.SubFactory("tests.factories.IssueFactory")
|
||||||
|
attached_file = factory.django.FileField(data=b"File contents")
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = "attachments.Attachment"
|
model = "attachments.Attachment"
|
||||||
strategy = factory.CREATE_STRATEGY
|
strategy = factory.CREATE_STRATEGY
|
||||||
|
|
||||||
|
|
||||||
class WikiAttachmentFactory(Factory):
|
class WikiAttachmentFactory(Factory):
|
||||||
project = factory.SubFactory("tests.factories.ProjectFactory")
|
project = factory.SubFactory("tests.factories.ProjectFactory")
|
||||||
owner = factory.SubFactory("tests.factories.UserFactory")
|
owner = factory.SubFactory("tests.factories.UserFactory")
|
||||||
content_object = factory.SubFactory("tests.factories.WikiFactory")
|
content_object = factory.SubFactory("tests.factories.WikiFactory")
|
||||||
|
attached_file = factory.django.FileField(data=b"File contents")
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = "attachments.Attachment"
|
model = "attachments.Attachment"
|
||||||
|
|
|
@ -4,73 +4,22 @@ from django.core.urlresolvers import reverse
|
||||||
from django.core.files.base import File
|
from django.core.files.base import File
|
||||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||||
|
|
||||||
from .. import factories as f
|
|
||||||
from ..utils import set_settings
|
|
||||||
|
|
||||||
from taiga.projects.attachments.serializers import AttachmentSerializer
|
from taiga.projects.attachments.serializers import AttachmentSerializer
|
||||||
|
from .. import factories as f
|
||||||
|
|
||||||
pytestmark = pytest.mark.django_db
|
pytestmark = pytest.mark.django_db
|
||||||
|
|
||||||
|
|
||||||
def test_authentication(client):
|
|
||||||
"User can't access an attachment if not authenticated"
|
|
||||||
attachment = f.UserStoryAttachmentFactory.create()
|
|
||||||
url = reverse("attachment-url", kwargs={"pk": attachment.pk})
|
|
||||||
|
|
||||||
response = client.get(url)
|
|
||||||
|
|
||||||
assert response.status_code == 401
|
|
||||||
|
|
||||||
|
|
||||||
def test_authorization(client):
|
|
||||||
"User can't access an attachment if not authorized"
|
|
||||||
attachment = f.UserStoryAttachmentFactory.create()
|
|
||||||
user = f.UserFactory.create()
|
|
||||||
|
|
||||||
url = reverse("attachment-url", kwargs={"pk": attachment.pk})
|
|
||||||
|
|
||||||
client.login(user)
|
|
||||||
response = client.get(url)
|
|
||||||
|
|
||||||
assert response.status_code == 403
|
|
||||||
|
|
||||||
|
|
||||||
@set_settings(IN_DEVELOPMENT_SERVER=True)
|
|
||||||
def test_attachment_redirect_in_devserver(client):
|
|
||||||
"When accessing the attachment in devserver redirect to the real attachment url"
|
|
||||||
attachment = f.UserStoryAttachmentFactory.create(attached_file="test")
|
|
||||||
|
|
||||||
url = reverse("attachment-url", kwargs={"pk": attachment.pk})
|
|
||||||
|
|
||||||
client.login(attachment.owner)
|
|
||||||
response = client.get(url)
|
|
||||||
|
|
||||||
assert response.status_code == 302
|
|
||||||
|
|
||||||
|
|
||||||
@set_settings(IN_DEVELOPMENT_SERVER=False)
|
|
||||||
def test_attachment_redirect(client):
|
|
||||||
"When accessing the attachment redirect using X-Accel-Redirect header"
|
|
||||||
attachment = f.UserStoryAttachmentFactory.create()
|
|
||||||
|
|
||||||
url = reverse("attachment-url", kwargs={"pk": attachment.pk})
|
|
||||||
|
|
||||||
client.login(attachment.owner)
|
|
||||||
response = client.get(url)
|
|
||||||
|
|
||||||
assert response.status_code == 200
|
|
||||||
assert response.has_header('x-accel-redirect')
|
|
||||||
|
|
||||||
|
|
||||||
# Bug test "Don't create attachments without attached_file"
|
|
||||||
def test_create_user_story_attachment_without_file(client):
|
def test_create_user_story_attachment_without_file(client):
|
||||||
|
"""
|
||||||
|
Bug test "Don't create attachments without attached_file"
|
||||||
|
"""
|
||||||
us = f.UserStoryFactory.create()
|
us = f.UserStoryFactory.create()
|
||||||
attachment = f.UserStoryAttachmentFactory(project=us.project, content_object=us)
|
attachment_data = {
|
||||||
|
"description": "test",
|
||||||
attachment_data = AttachmentSerializer(attachment).data
|
"attached_file": None,
|
||||||
attachment_data["id"] = None
|
"project": us.project_id,
|
||||||
attachment_data["description"] = "test"
|
}
|
||||||
attachment_data["attached_file"] = None
|
|
||||||
|
|
||||||
url = reverse('userstory-attachments-list')
|
url = reverse('userstory-attachments-list')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue