182 lines
5.7 KiB
Python
182 lines
5.7 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 *
|
|
|
|
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)
|
|
def test_newuser(self,mock_workout_summaries):
|
|
form_data = {
|
|
'first_name':'Jan',
|
|
'last_name':'Roeiert',
|
|
'email':'jan@loop.nl',
|
|
'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.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,
|
|
'url': '',
|
|
'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',
|
|
'url': '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())
|
|
|
|
|