Private
Public Access
1
0
Files
rowsandall/rowers/tests/test_newusers.py
2025-10-30 15:38:40 +01:00

193 lines
6.1 KiB
Python

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
#from __future__ import print_function
from .statements import *
from django_recaptcha.client import RecaptchaResponse
from django_recaptcha.fields import ReCaptchaField
nu = datetime.datetime.now()
#@pytest.mark.django_db
@override_settings(TESTING=True)
class NewUserRegistrationTest(TestCase):
def setUp(self):
self.c = Client()
redis_connection.publish('tasks','KILL')
def tearDown(self):
try:
os.remove('rowsandall_workouts_2018-01-01_2019-01-01.csv')
except:
pass
@patch('rowers.dataprep.workout_summary_to_df',side_effect=mock_workout_summaries)
@patch("django_recaptcha.fields.client.submit")
def test_newuser(self,mock_submit, mock_workout_summaries):
mock_response = RecaptchaResponse(is_valid=True, extra_data={'score': 0.95})
mock_submit.return_value = mock_response
form_data = {
'first_name':'Jan',
'last_name':'Roeiert',
'email':'jan@loop.nl',
'username':'janderoeiert',
'password1':'Aapindewei2',
'password2':'Aapindewei2',
'hp_field': '',
'tos':True,
'weightcategory':'hwt',
'adaptiveclass': 'None',
'sex':'male',
'captcha': 'PASSED',
'g-recaptcha-response': 'PASSED',
'next':'/rowers/list-workouts',
'birthdate':datetime.datetime(year=1970,month=4,day=2)
}
form = RegistrationFormSex(form_data)
if not form.is_valid():
print(form.errors)
self.assertTrue(form.is_valid())
response = self.c.post('/rowers/register/', form_data, follow=True)
self.assertEqual(response.status_code,200)
# set opt-in
user = User.objects.get(username='janderoeiert')
user.rower.gdpr_optin = True
user.rower.ftpset = True
user.set_password('Aapindewei2')
user.is_active = True
user.save()
user.rower.save()
login = self.c.login(username=user.username,password='Aapindewei2')
self.assertTrue(login)
url = '/rowers/list-workouts/'
response = self.c.get(url)
expected = '/rowers/me/gdpr-optin/?next=/rowers/list-workouts/'
self.assertRedirects(response,
expected_url=expected,
status_code=302,target_status_code=200)
url = '/rowers/me/gdpr-optin-confirm/?next=/rowers/list-workouts/'
response = self.c.get(url)
expected = '/rowers/list-workouts/'
self.assertRedirects(response,
expected_url=expected,
status_code=302,target_status_code=200)
url = '/rowers/exportallworkouts/'
response = self.c.get(url,follow=True)
self.assertTrue(response.status_code,200)
form_data = {
'startdate':'2018-01-01',
'enddate':'2019-01-01'
}
response = self.c.post(url,form_data)
self.assertTrue(response.status_code,200)
url = '/rowers/me/delete/'
form_data = {
'delete_user':True,
}
response = self.c.post(url,form_data,follow=True)
self.assertRedirects(response,
expected_url='/login/',
status_code=302,target_status_code=200)
@patch('rowers.dataprep.workout_summary_to_df',side_effect=mock_workout_summaries)
def test_newuser_false(self,mock_workout_summaries):
form_data = {
'first_name':'Jan',
'last_name':'Roeiert',
'email':'jan@loop.nl',
'username':'janderoeiert',
'password1':'aapindewei2',
'password2':'aapindewei2',
'tos':True,
'hp_field': '',
'weightcategory':'hwt',
'adaptiveclass': 'None',
'sex':'male',
'next':'/rowers/list-workouts',
'birthdate':datetime.datetime(year=1970,month=4,day=2)
}
form = RegistrationFormSex(form_data)
self.assertFalse(form.is_valid())
@patch('rowers.dataprep.workout_summary_to_df',side_effect=mock_workout_summaries)
def test_newuser_honeypot(self,mock_workout_summaries):
form_data = {
'first_name':'Jan',
'last_name':'Roeiert',
'email':'jan@loop.nl',
'username':'janderoeiert',
'password1':'Aapindewei2',
'password2':'Aapindewei2',
'hp_field': 'http://example.com',
'tos':True,
'weightcategory':'hwt',
'adaptiveclass': 'None',
'sex':'male',
'next':'/rowers/list-workouts',
'birthdate':datetime.datetime(year=1970,month=4,day=2)
}
form = RegistrationFormSex(form_data)
self.assertFalse(form.is_valid())
# still post it, should redirect to the registration page
response = self.c.post('/rowers/register/', form_data, follow=True)
self.assertEqual(response.status_code,200)
self.assertRedirects(response,
expected_url='/rowers/register/',
status_code=302,target_status_code=200)
@patch('rowers.dataprep.workout_summary_to_df',side_effect=mock_workout_summaries)
def test_newuser_disposable(self,mock_workout_summaries):
form_data = {
'first_name':'Jan',
'last_name':'Roeiert',
'email':'jan@powerscrews.com',
'username':'janderoeiert',
'password1':'Aapindewei2',
'password2':'Aapindewei2',
'url': '',
'tos':True,
'weightcategory':'hwt',
'adaptiveclass': 'None',
'sex':'male',
'next':'/rowers/list-workouts',
'birthdate':datetime.datetime(year=1970,month=4,day=2)
}
form = RegistrationFormSex(form_data)
self.assertFalse(form.is_valid())