2018-05-01 17:16:09 +00:00
|
|
|
from django.contrib.auth.models import User
|
|
|
|
from django.http import QueryDict
|
2018-04-19 19:52:40 +00:00
|
|
|
from django.test import TestCase
|
2018-05-01 17:16:09 +00:00
|
|
|
from django.utils.translation import activate
|
|
|
|
from django.urls import reverse
|
2018-04-19 19:52:40 +00:00
|
|
|
|
2018-05-01 17:16:09 +00:00
|
|
|
from override_storage import override_storage
|
|
|
|
|
|
|
|
from .models import File
|
|
|
|
|
|
|
|
|
|
|
|
@override_storage()
|
|
|
|
class FileTests(TestCase):
|
|
|
|
|
2019-08-19 21:37:32 +00:00
|
|
|
test_user = "testuser1"
|
|
|
|
test_pass = "12345"
|
2018-05-01 17:16:09 +00:00
|
|
|
|
|
|
|
def setUp(self):
|
2019-08-19 21:37:32 +00:00
|
|
|
test_user1 = User.objects.create_user(
|
|
|
|
username=self.test_user, password=self.test_pass
|
|
|
|
)
|
2018-05-01 17:16:09 +00:00
|
|
|
test_user1.save()
|
|
|
|
|
2019-08-19 21:37:32 +00:00
|
|
|
activate("en-gb")
|
2018-05-01 17:16:09 +00:00
|
|
|
|
|
|
|
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):
|
2019-08-19 21:37:32 +00:00
|
|
|
url = reverse("files:upload")
|
2018-05-01 17:16:09 +00:00
|
|
|
|
2019-08-19 21:37:32 +00:00
|
|
|
next_url = QueryDict.fromkeys(["next"], url)
|
|
|
|
login_url = reverse("auth_login") + "?" + next_url.urlencode()
|
2018-05-01 17:16:09 +00:00
|
|
|
|
|
|
|
response = self.client.post(url, follow=True)
|
|
|
|
self.assertRedirects(response, login_url)
|
|
|
|
|
|
|
|
def test_delete_not_logged_in(self):
|
2019-08-19 21:37:32 +00:00
|
|
|
url = reverse("files:delete", kwargs={"pk": self.file.pk})
|
2018-05-01 17:16:09 +00:00
|
|
|
|
2019-08-19 21:37:32 +00:00
|
|
|
next_url = QueryDict.fromkeys(["next"], url)
|
|
|
|
login_url = reverse("auth_login") + "?" + next_url.urlencode()
|
2018-05-01 17:16:09 +00:00
|
|
|
|
|
|
|
response = self.client.post(url, follow=True)
|
|
|
|
self.assertRedirects(response, login_url)
|
|
|
|
|
|
|
|
def test_post_and_delete(self):
|
|
|
|
login = self.login()
|
|
|
|
|
2019-08-19 21:37:32 +00:00
|
|
|
with open("apps/map/static/map/ojuso-logo-white.png", "rb") as fp:
|
|
|
|
response = self.client.post(reverse("files:upload_image"), {"file": fp})
|
2018-05-01 17:16:09 +00:00
|
|
|
|
|
|
|
data = response.json()
|
2019-08-19 21:37:32 +00:00
|
|
|
self.assertIsInstance(data["id"], int)
|
|
|
|
self.assertEqual(data["is_valid"], True)
|
2018-05-01 17:16:09 +00:00
|
|
|
|
2019-08-19 21:37:32 +00:00
|
|
|
response = self.client.post(
|
|
|
|
reverse("files:delete_image", kwargs={"pk": data["id"]})
|
|
|
|
)
|
2018-05-01 17:16:09 +00:00
|
|
|
|
2018-06-27 18:43:39 +00:00
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
2018-05-01 17:16:09 +00:00
|
|
|
data = response.json()
|
|
|
|
|
2019-08-19 21:37:32 +00:00
|
|
|
self.assertEqual(data["success"], True)
|