67 lines
1.9 KiB
Python
67 lines
1.9 KiB
Python
from django.contrib.auth.models import User
|
|
from django.http import QueryDict
|
|
from django.test import TestCase
|
|
from django.urls import reverse
|
|
from django.utils.translation import activate
|
|
from override_storage import override_storage
|
|
|
|
from .models import File
|
|
|
|
|
|
@override_storage()
|
|
class FileTests(TestCase):
|
|
|
|
test_user = "testuser1"
|
|
test_pass = "12345"
|
|
|
|
def setUp(self):
|
|
test_user1 = User.objects.create_user(
|
|
username=self.test_user, password=self.test_pass
|
|
)
|
|
test_user1.save()
|
|
|
|
activate("en-gb")
|
|
|
|
self.file = File.objects.create(user=test_user1)
|
|
|
|
def login(self):
|
|
return self.client.login(username=self.test_user, password=self.test_pass)
|
|
|
|
def test_post_not_logged_in(self):
|
|
url = reverse("files:upload")
|
|
|
|
next_url = QueryDict.fromkeys(["next"], url)
|
|
login_url = reverse("auth_login") + "?" + next_url.urlencode()
|
|
|
|
response = self.client.post(url, follow=True)
|
|
self.assertRedirects(response, login_url)
|
|
|
|
def test_delete_not_logged_in(self):
|
|
url = reverse("files:delete", kwargs={"pk": self.file.pk})
|
|
|
|
next_url = QueryDict.fromkeys(["next"], url)
|
|
login_url = reverse("auth_login") + "?" + next_url.urlencode()
|
|
|
|
response = self.client.post(url, follow=True)
|
|
self.assertRedirects(response, login_url)
|
|
|
|
def test_post_and_delete(self):
|
|
self.login()
|
|
|
|
with open("apps/map/static/map/ojuso-logo-white.png", "rb") as fp:
|
|
response = self.client.post(reverse("files:upload_image"), {"file": fp})
|
|
|
|
data = response.json()
|
|
self.assertIsInstance(data["id"], int)
|
|
self.assertEqual(data["is_valid"], True)
|
|
|
|
response = self.client.post(
|
|
reverse("files:delete_image", kwargs={"pk": data["id"]})
|
|
)
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
data = response.json()
|
|
|
|
self.assertEqual(data["success"], True)
|