better email address validation in team invite form
This commit is contained in:
@@ -19,3 +19,5 @@ pkg_mox = None
|
||||
# pkg_mox.UnsetStubs()
|
||||
|
||||
#from tests import *
|
||||
|
||||
#from __future__ import print_function
|
||||
|
||||
66
rowers/tests/statements.py
Normal file
66
rowers/tests/statements.py
Normal file
@@ -0,0 +1,66 @@
|
||||
import pytest
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
from bs4 import BeautifulSoup
|
||||
import re
|
||||
from nose_parameterized import parameterized
|
||||
from django.test import TestCase, Client,override_settings, RequestFactory
|
||||
|
||||
from django.core.management import call_command
|
||||
from django.utils.six import StringIO
|
||||
from django.test.client import RequestFactory
|
||||
from rowers.views import checkworkoutuser,c2_open, multi_compare_view
|
||||
|
||||
from rowers.forms import (
|
||||
DocumentsForm,CNsummaryForm,RegistrationFormUniqueEmail,
|
||||
ChartParamChoiceForm,WorkoutMultipleCompareForm,
|
||||
BoxPlotChoiceForm)
|
||||
import rowers.plots as plots
|
||||
import rowers.interactiveplots as iplots
|
||||
import datetime
|
||||
from rowingdata import rowingdata as rdata
|
||||
from rowingdata import rower as rrower
|
||||
from django.utils import timezone
|
||||
from rowers.rows import handle_uploaded_file
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
from time import strftime,strptime,mktime,time,daylight
|
||||
import os
|
||||
from rowers.tasks import handle_makeplot
|
||||
from rowers.utils import serialize_list,deserialize_list
|
||||
from rowers.utils import NoTokenError
|
||||
from rowers.plannedsessions import get_dates_timeperiod
|
||||
from shutil import copyfile
|
||||
from nose.tools import assert_true
|
||||
from mock import Mock, patch
|
||||
from minimocktest import MockTestCase
|
||||
import pandas as pd
|
||||
import rowers.c2stuff as c2stuff
|
||||
|
||||
import json
|
||||
import numpy as np
|
||||
|
||||
from rowers import urls
|
||||
from rowers.views import (
|
||||
error500_view,error404_view,error400_view,error403_view
|
||||
)
|
||||
|
||||
from rowers.dataprep import delete_strokedata
|
||||
from django.contrib.sessions.middleware import SessionMiddleware
|
||||
|
||||
from django.conf import settings
|
||||
from importlib import import_module
|
||||
|
||||
from redis import StrictRedis
|
||||
redis_connection = StrictRedis()
|
||||
|
||||
from django_mailbox.models import Mailbox,MessageAttachment,Message
|
||||
|
||||
from rowers.tests.mocks import *
|
||||
|
||||
from rowers.models import *
|
||||
from rowers.tests.mocks import *
|
||||
import factory
|
||||
from faker import Factory
|
||||
|
||||
faker = Factory.create()
|
||||
@@ -1,70 +1,4 @@
|
||||
#from __future__ import print_function
|
||||
import pytest
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
from bs4 import BeautifulSoup
|
||||
import re
|
||||
from nose_parameterized import parameterized
|
||||
from django.test import TestCase, Client,override_settings, RequestFactory
|
||||
|
||||
from django.core.management import call_command
|
||||
from django.utils.six import StringIO
|
||||
from django.test.client import RequestFactory
|
||||
from rowers.views import checkworkoutuser,c2_open, multi_compare_view
|
||||
|
||||
from rowers.forms import (
|
||||
DocumentsForm,CNsummaryForm,RegistrationFormUniqueEmail,
|
||||
ChartParamChoiceForm,WorkoutMultipleCompareForm,
|
||||
BoxPlotChoiceForm)
|
||||
import rowers.plots as plots
|
||||
import rowers.interactiveplots as iplots
|
||||
import datetime
|
||||
from rowingdata import rowingdata as rdata
|
||||
from rowingdata import rower as rrower
|
||||
from django.utils import timezone
|
||||
from rowers.rows import handle_uploaded_file
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
from time import strftime,strptime,mktime,time,daylight
|
||||
import os
|
||||
from rowers.tasks import handle_makeplot
|
||||
from rowers.utils import serialize_list,deserialize_list
|
||||
from rowers.utils import NoTokenError
|
||||
from rowers.plannedsessions import get_dates_timeperiod
|
||||
from shutil import copyfile
|
||||
from nose.tools import assert_true
|
||||
from mock import Mock, patch
|
||||
from minimocktest import MockTestCase
|
||||
import pandas as pd
|
||||
import rowers.c2stuff as c2stuff
|
||||
|
||||
import json
|
||||
import numpy as np
|
||||
|
||||
from rowers import urls
|
||||
from rowers.views import (
|
||||
error500_view,error404_view,error400_view,error403_view
|
||||
)
|
||||
|
||||
from rowers.dataprep import delete_strokedata
|
||||
from django.contrib.sessions.middleware import SessionMiddleware
|
||||
|
||||
from django.conf import settings
|
||||
from importlib import import_module
|
||||
|
||||
from redis import StrictRedis
|
||||
redis_connection = StrictRedis()
|
||||
|
||||
from django_mailbox.models import Mailbox,MessageAttachment,Message
|
||||
|
||||
from rowers.tests.mocks import *
|
||||
|
||||
from rowers.models import *
|
||||
from rowers.tests.mocks import *
|
||||
import factory
|
||||
from faker import Factory
|
||||
|
||||
faker = Factory.create()
|
||||
from statements import *
|
||||
|
||||
filename = 'rowers/tests/testdata/testdata.csv'
|
||||
|
||||
|
||||
127
rowers/tests/test_teams.py
Normal file
127
rowers/tests/test_teams.py
Normal file
@@ -0,0 +1,127 @@
|
||||
from statements import *
|
||||
|
||||
nu = datetime.datetime.now()
|
||||
|
||||
filename = 'rowers/tests/testdata/testdata.csv'
|
||||
|
||||
row = rdata(filename)
|
||||
totaldist = row.df['cum_dist'].max()
|
||||
totaltime = row.df['TimeStamp (sec)'].max()-row.df['TimeStamp (sec)'].min()
|
||||
totaltime = totaltime+row.df.ix[0,' ElapsedTime (sec)']
|
||||
|
||||
|
||||
hours = int(totaltime/3600.)
|
||||
minutes = int((totaltime - 3600.*hours)/60.)
|
||||
seconds = int(totaltime - 3600.*hours - 60.*minutes)
|
||||
tenths = int(10*(totaltime - 3600.*hours - 60.*minutes - seconds))
|
||||
|
||||
duration = "%s:%s:%s.%s" % (hours,minutes,seconds,tenths)
|
||||
duration = datetime.time(hour=hours,minute=minutes,second=seconds)
|
||||
|
||||
workoutdate = row.rowdatetime.strftime('%Y-%m-%d')
|
||||
workoutstarttime = row.rowdatetime.strftime('%H:%M:%S')
|
||||
|
||||
from rowers.teams import *
|
||||
|
||||
class UserFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = User
|
||||
|
||||
email = faker.email()
|
||||
username = faker.profile()['username']
|
||||
|
||||
first_name = faker.name().split(' ')[0]
|
||||
last_name = faker.name().split(' ')[0]
|
||||
|
||||
class WorkoutFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = Workout
|
||||
|
||||
name = factory.LazyAttribute(lambda _: faker.word())
|
||||
notes = faker.text()
|
||||
startdatetime = row.rowdatetime
|
||||
starttime = workoutstarttime
|
||||
workouttype='water'
|
||||
date=timezone.now().date()
|
||||
duration=duration
|
||||
distance=totaldist
|
||||
csvfilename=filename
|
||||
|
||||
class SessionFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = PlannedSession
|
||||
|
||||
name = factory.LazyAttribute(lambda _: faker.word())
|
||||
comment = faker.text()
|
||||
|
||||
class TeamFactory(factory.DjangoModelFactory):
|
||||
class Meta:
|
||||
model = Team
|
||||
|
||||
name = factory.LazyAttribute(lambda _: faker.word())
|
||||
notes = faker.text()
|
||||
private = 'open'
|
||||
viewing = 'allmembers'
|
||||
|
||||
class TeamCreateFactory(TestCase):
|
||||
def setUp(self):
|
||||
self.user_passwords = []
|
||||
usernames = [
|
||||
'user1',
|
||||
'user2',
|
||||
'user3',
|
||||
'user4',
|
||||
'user5',
|
||||
'user6',
|
||||
]
|
||||
self.users = []
|
||||
|
||||
for i in range(6):
|
||||
u = UserFactory(username=usernames[i])
|
||||
self.users.append(u)
|
||||
|
||||
r = Rower.objects.create(
|
||||
birthdate=faker.profile()['birthdate'],
|
||||
gdproptin=True,
|
||||
gdproptindate=timezone.now(),
|
||||
rowerplan='coach',
|
||||
user=u
|
||||
)
|
||||
r.save()
|
||||
|
||||
password = faker.word()
|
||||
u.set_password(password)
|
||||
u.save()
|
||||
self.user_passwords.append(password)
|
||||
|
||||
|
||||
workouts = WorkoutFactory.create_batch(5, user=r)
|
||||
|
||||
|
||||
self.c = Client()
|
||||
|
||||
self.u = self.users[0]
|
||||
self.password = self.user_passwords[0]
|
||||
|
||||
self.t = TeamFactory(manager=self.u)
|
||||
|
||||
|
||||
def test_teamview(self):
|
||||
login = self.c.login(username=self.u.username, password = self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = '/rowers/team/{t}/'.format(t=self.t.id)
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_teamview_member(self):
|
||||
|
||||
id,comment = add_member(self.t.id,self.users[1].rower)
|
||||
self.assertEqual(id,self.t.id)
|
||||
|
||||
login = self.c.login(username=self.users[1].username, password = self.user_passwords[1])
|
||||
self.assertTrue(login)
|
||||
|
||||
url = '/rowers/team/{t}/'.format(t=self.t.id)
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
2
rowers/tests/testdata/testdata.tcx
vendored
2
rowers/tests/testdata/testdata.tcx
vendored
@@ -2502,7 +2502,7 @@
|
||||
</Trackpoint>
|
||||
</Track>
|
||||
</Lap>
|
||||
<Notes><Element 'Notes' at 0x134f79e8></Notes>
|
||||
<Notes><Element 'Notes' at 0x1469d4a8></Notes>
|
||||
</Activity>
|
||||
</Activities>
|
||||
<Creator>
|
||||
|
||||
Reference in New Issue
Block a user