136 lines
4.1 KiB
Python
136 lines
4.1 KiB
Python
#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, CourseForm)
|
|
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 *
|
|
|
|
class CoursesTest(TestCase):
|
|
def setUp(self):
|
|
self.c = Client()
|
|
self.u = User.objects.create_user('john',
|
|
'sander@ds.ds',
|
|
'koeinsloot')
|
|
self.r = Rower.objects.create(user=self.u,gdproptin=True,
|
|
gdproptindate=timezone.now(),
|
|
rowerplan='coach',
|
|
)
|
|
self.nu = datetime.datetime.now()
|
|
|
|
|
|
def test_courses(self):
|
|
login = self.c.login(username='john',password='koeinsloot')
|
|
self.assertTrue(login)
|
|
|
|
filename = 'rowers/tests/testdata/Courses.kml'
|
|
f = open(filename,'rb')
|
|
file_data = {'file': f}
|
|
form_data = {
|
|
'name': 'test courses',
|
|
'notes': 'aap nn',
|
|
'file':f,
|
|
}
|
|
|
|
courseform = CourseForm(form_data,file_data)
|
|
self.assertTrue(courseform.is_valid)
|
|
|
|
response = self.c.get('/rowers/courses/upload/')
|
|
self.assertTrue(response.status_code,200)
|
|
|
|
response = self.c.post('/rowers/courses/upload/', form_data, follow=True)
|
|
|
|
f.close()
|
|
|
|
self.assertRedirects(response, expected_url='/rowers/list-courses/',
|
|
status_code=302,target_status_code=200)
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response = self.c.get('/rowers/list-courses/')
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
response = self.c.get('/rowers/courses/1/edit/')
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
response = self.c.get('/rowers/courses/1/')
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
form_data = {
|
|
'name':'apekoers',
|
|
'country':'United States of Atlantis',
|
|
'notes':'nota bene'
|
|
}
|
|
|
|
form = GeoCourseEditForm(form_data)
|
|
self.assertTrue(form.is_valid)
|
|
|
|
response = self.c.post('/rowers/courses/1/edit/',form_data)
|
|
self.assertTrue(response.status_code,200)
|
|
|
|
response = self.c.get('/rowers/courses/1/downloadkml/')
|
|
self.assertEqual(response.status_code,200)
|
|
|
|
self.assertEquals(
|
|
response.get('Content-Disposition'),
|
|
'attachment; filename="course_1.kml"'
|
|
)
|
|
|