from django.test import RequestFactory, TestCase, override_settings from django.utils.http import urlsafe_base64_encode from django.utils.encoding import force_bytes from django.urls import reverse from rest_framework import status from ..forms import SignupForm from ..tokens import account_activation_token import re @override_settings(STATICFILES_STORAGE='django.contrib.staticfiles.storage.StaticFilesStorage') class TestActivate(TestCase): def setUp(self): # Every test needs access to the request factory. self.factory = RequestFactory() request_POST = {'username': 'username5648', 'email': 'email@example.com', 'password1': 'pwd0000Y00$$', 'password2': 'pwd0000Y00$$'} user = SignupForm(request_POST).save(commit=False) user.save() self.token = account_activation_token.make_token(user) self.uid = urlsafe_base64_encode(force_bytes(user.pk)).decode() def test_activate_invalid(self): response = self.client.get(reverse('activate', args=['wrong_uid', 'wrong_token'])) self.assertEqual(response.status_code, 200) needle = '

Activation link is invalid!

' m = re.search(needle, str(response.content)) self.assertTrue(m is None) def test_activate_valid(self): """we make sure code is for the /projects redirection""" response = self.client.get(reverse('activate', args=[self.uid, self.token])) # For some reason this get rejected by Travis CI # File "/usr/local/lib/python3.6/site-packages/webpack_loader/loader.py", line 26, in _load_assets with open(self.config['STATS_FILE'], encoding="utf-8") as f: # FileNotFoundError: [Errno 2] No such file or directory: '/doccano/app/server/static/webpack-stats.json' # self.assertRedirects(response, '/projects/') self.assertEqual(response.status_code, status.HTTP_302_FOUND)