tests creating editing and deleting courses
This commit is contained in:
212
rowers/tests/test_races.py
Normal file
212
rowers/tests/test_races.py
Normal file
@@ -0,0 +1,212 @@
|
||||
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()
|
||||
|
||||
from rowers.utils import allmonths,allsundays
|
||||
|
||||
import rowers.plannedsessions as plannedsessions
|
||||
import rowers.courses as courses
|
||||
from rowers.views.racesviews import *
|
||||
|
||||
@override_settings(TESTING=True)
|
||||
class ChallengesTest(TestCase):
|
||||
def setUp(self):
|
||||
self.u = UserFactory()
|
||||
|
||||
self.r = Rower.objects.create(user=self.u,
|
||||
birthdate=faker.profile()['birthdate'],
|
||||
gdproptin=True,surveydone=True,
|
||||
gdproptindate=timezone.now(),
|
||||
rowerplan='coach')
|
||||
|
||||
self.c = Client()
|
||||
self.user_workouts = WorkoutFactory.create_batch(5, user=self.r)
|
||||
self.factory = RequestFactory()
|
||||
self.password = faker.word()
|
||||
self.u.set_password(self.password)
|
||||
self.u.save()
|
||||
|
||||
cs = courses.kmltocourse('rowers/tests/testdata/thyro.kml')
|
||||
course = cs[0]
|
||||
cname = course['name']
|
||||
cnotes = course['description']
|
||||
polygons = course['polygons']
|
||||
self.ThyroBaantje = courses.createcourse(self.r,cname,polygons,notes=cnotes)
|
||||
self.ThyroBaantje.save()
|
||||
|
||||
id = save_scoring('Standard Scoring',self.u,'rowers/tests/testdata/coursestandard.csv',id=0)
|
||||
self.Scoring = StandardCollection.objects.get(id=id)
|
||||
|
||||
result = get_random_file(filename='rowers/tests/testdata/thyro.csv')
|
||||
self.wthyro = WorkoutFactory(user=self.r,
|
||||
csvfilename=result['filename'],
|
||||
starttime=result['starttime'],
|
||||
startdatetime=result['startdatetime'],
|
||||
duration=result['duration'],
|
||||
distance=result['totaldist'],
|
||||
workouttype = 'water',
|
||||
)
|
||||
|
||||
startdate = arrow.get(datetime.datetime.now()-datetime.timedelta(days=1)).datetime
|
||||
start_time = datetime.time()
|
||||
enddate = startdate+datetime.timedelta(days=5)
|
||||
end_time = start_time
|
||||
evaluation_closure = startdate+datetime.timedelta(days=6)
|
||||
registration_closure = evaluation_closure
|
||||
contact_phone = '06342323'
|
||||
contact_email = 'roosendaalsander@gmail.com'
|
||||
|
||||
timezone_str = 'UTC'
|
||||
|
||||
self.SpeedOrder = VirtualRace(
|
||||
name='Thyro Speed Order',
|
||||
startdate=startdate,
|
||||
preferreddate = startdate,
|
||||
start_time = start_time,
|
||||
enddate=enddate,
|
||||
end_time=end_time,
|
||||
course=self.ThyroBaantje,
|
||||
comment='',
|
||||
sessiontype = 'race',
|
||||
timezone=timezone_str,
|
||||
evaluation_closure=evaluation_closure,
|
||||
registration_closure=registration_closure,
|
||||
contact_phone=contact_phone,
|
||||
coursestandards=self.Scoring,
|
||||
contact_email=contact_email,
|
||||
country = 'Netherlands',
|
||||
manager=self.u,
|
||||
)
|
||||
self.SpeedOrder.save()
|
||||
|
||||
|
||||
def tearDown(self):
|
||||
for workout in self.user_workouts:
|
||||
try:
|
||||
os.remove(workout.csvfilename)
|
||||
except (IOError, FileNotFoundError,OSError):
|
||||
pass
|
||||
|
||||
def test_distance(self):
|
||||
lat_lon = (52.214229145558484, 6.890036546847821)
|
||||
distance = howfaris(lat_lon,self.ThyroBaantje)
|
||||
self.assertEqual(distance,3.156402768718697)
|
||||
|
||||
def test_getnearestraces(self):
|
||||
lat_lon = (52.214229145558484, 6.890036546847821)
|
||||
races = VirtualRace.objects.all()
|
||||
traces = getnearestraces(lat_lon,races)
|
||||
self.assertEqual(len(traces),1)
|
||||
|
||||
def test_getnearestcourses(self):
|
||||
lat_lon = (52.214229145558484, 6.890036546847821)
|
||||
courses = [self.ThyroBaantje]
|
||||
tcourses = getnearestcourses(lat_lon,courses)
|
||||
self.assertEqual(len(tcourses),1)
|
||||
|
||||
def test_courses_view(self):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('courses_view')
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
def test_standards_view(self):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('standards_view')
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
def test_coursemap_view(self):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('course_map_view',kwargs={'id':self.ThyroBaantje.id})
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
def test_course_create_edit_delete(self):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
# Create
|
||||
url = reverse('course_upload_view')
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
filename = 'rowers/tests/testdata/alphen.kml'
|
||||
f = open(filename,'r')
|
||||
|
||||
file_data = {'file': f}
|
||||
form_data = {
|
||||
'name':'Alphen',
|
||||
'notes': 'aa',
|
||||
'country': 'Netherlands',
|
||||
'file':f,
|
||||
}
|
||||
|
||||
form = CourseForm(form_data,file_data)
|
||||
response = self.c.post(url,form_data,follow=True)
|
||||
f.close()
|
||||
|
||||
expected_url = reverse('courses_view')
|
||||
|
||||
self.assertRedirects(response, expected_url=expected_url,
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
courses = GeoCourse.objects.all()
|
||||
|
||||
self.assertEqual(len(courses),2)
|
||||
|
||||
Alphen = GeoCourse.objects.get(id=2)
|
||||
|
||||
# edit
|
||||
url = reverse('course_edit_view',kwargs={'id':Alphen.id})
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
form_data = {
|
||||
'name':'Alphen',
|
||||
'country': 'NL',
|
||||
'notes': 'bb'
|
||||
}
|
||||
|
||||
form = GeoCourseEditForm(form_data)
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
response = self.c.post(url,form_data)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
# check
|
||||
url = reverse('course_view',kwargs={'id':Alphen.id})
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
# (ToDO Upload new kml)
|
||||
|
||||
# KML Download
|
||||
url = reverse('course_kmldownload_view',kwargs={'id':Alphen.id})
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
# delete
|
||||
url = reverse('course_delete_view',kwargs={'id':Alphen.id})
|
||||
response = self.c.get(url,follow=True)
|
||||
expected_url = reverse('courses_view')
|
||||
|
||||
self.assertRedirects(response, expected_url=expected_url,
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
Reference in New Issue
Block a user