from django.contrib.auth.models import User from django.http import QueryDict from django.test import TestCase from django.utils.translation import activate from django.urls import reverse 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): login = self.login() with open('apps/map/static/map/ojuso-logo-white.png', 'rb') as fp: response = self.client.post(reverse('files:upload'), { 'file': fp }) data = response.json() self.assertIsInstance(data['id'], int) self.assertEqual(data['is_valid'], True) response = self.client.post(reverse('files:delete', kwargs={ 'pk': data['id'] })) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual(data['success'], True)