ojuso-map/apps/files/tests.py

67 lines
1.9 KiB
Python
Raw Permalink Normal View History

2018-05-01 17:16:09 +00:00
from django.contrib.auth.models import User
from django.http import QueryDict
from django.test import TestCase
2018-05-01 17:16:09 +00:00
from django.urls import reverse
2019-08-19 21:53:34 +00:00
from django.utils.translation import activate
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):
2019-08-19 21:52:27 +00:00
self.login()
2018-05-01 17:16:09 +00:00
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
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)