diff --git a/rowers/tests/mocks.py b/rowers/tests/mocks.py index ecde94c8..64d0b882 100644 --- a/rowers/tests/mocks.py +++ b/rowers/tests/mocks.py @@ -224,6 +224,9 @@ class MockStravalibClient(): ## Higher level - unfortunately didn't succeed in mocking the gateway +def get_client_token(*args, **kwargs): + return "aap" + def mock_create_customer(*args, **kwargs): return 121 diff --git a/rowers/tests/test_cpchart.py b/rowers/tests/test_cpchart.py index d7bebf18..8aded64d 100644 --- a/rowers/tests/test_cpchart.py +++ b/rowers/tests/test_cpchart.py @@ -11,38 +11,6 @@ import rowers.dataprep as dataprep -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 - rankingpiece = False - -class SessionFactory(factory.DjangoModelFactory): - class Meta: - model = PlannedSession - - name = factory.LazyAttribute(lambda _: faker.word()) - comment = faker.text() - class OTWCPChartTest(TestCase): def setUp(self): self.u = UserFactory() diff --git a/rowers/tests/test_payments.py b/rowers/tests/test_payments.py index 69bc2b37..61a9e5c6 100644 --- a/rowers/tests/test_payments.py +++ b/rowers/tests/test_payments.py @@ -54,7 +54,8 @@ class PaymentTest(TestCase): # settings.DEBUG = False @patch('rowers.views.braintreestuff.create_customer',side_effect=mock_create_customer) - def test_billing_view(self,mocked_create_customer): + @patch('rowers.views.braintreestuff.gateway',side_effect=MockBraintreeGateway) + def test_billing_view(self,mocked_create_customer,mocked_gateway): u = UserFactory() r = Rower.objects.create(user=u, birthdate=faker.profile()['birthdate'], diff --git a/rowers/tests/test_teams.py b/rowers/tests/test_team.py similarity index 81% rename from rowers/tests/test_teams.py rename to rowers/tests/test_team.py index 3b7614e4..161d5325 100644 --- a/rowers/tests/test_teams.py +++ b/rowers/tests/test_team.py @@ -13,7 +13,7 @@ class TeamFactory(factory.DjangoModelFactory): private = 'open' viewing = 'allmembers' -class TeamCreateTest(TestCase): +class TeamTest(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') self.user_passwords = [] @@ -61,6 +61,20 @@ class TeamCreateTest(TestCase): self.t = TeamFactory(manager=self.u) # need to set up some requests for testing (they are not good below) + self.invite = TeamInvite( + team = self.t, + user = self.users[1], + code = 'abcde', + email = self.users[1].email + ) + self.invite.save() + + self.rekwest = TeamRequest( + team = self.t, + user = self.users[2], + code ='abcde' + ) + self.rekwest.save() def tearDown(self): for csvfilename in self.csvfilenames: @@ -106,8 +120,6 @@ class TeamCreateTest(TestCase): self.assertEqual(response.status_code, 200) def test_teamsview(self): - id, result = create_request(self.t,self.users[2].id) - id, comment = create_invite(self.t,self.u,user=self.users[1]) url = '/rowers/me/teams/' @@ -149,8 +161,6 @@ class TeamCreateTest(TestCase): self.assertIn(response.status_code,[200,302]) def test_teamsview_manager(self): - id, result = create_request(self.t,self.users[2].id) - id, comment = create_invite(self.t,self.u,user=self.users[1]) url = '/rowers/me/teams/' @@ -174,12 +184,12 @@ class TeamCreateTest(TestCase): def test_teamview_member_request(self): - login = self.c.login(username=self.users[1].username, password = self.user_passwords[1]) + login = self.c.login(username=self.users[3].username, password = self.user_passwords[3]) self.assertTrue(login) url = '/rowers/team/{t}/requestmembership/{u}/'.format( t=self.t.id, - u=self.users[1].id) + u=self.users[3].id) response = self.c.get(url,follow=True) self.assertEqual(response.status_code, 200) @@ -188,13 +198,10 @@ class TeamCreateTest(TestCase): expected_url='/rowers/team/{t}/'.format(t=self.t.id), status_code=302,target_status_code=200) - id, result = create_request(self.t,self.users[2].id) - self.assertTrue(id != 0) - login = self.c.login(username=self.users[2].username, password = self.user_passwords[2]) self.assertTrue(login) - url = '/rowers/me/invitation/{id}/revoke/'.format(id=id) + url = '/rowers/me/request/{id}/revoke/'.format(id=self.rekwest.id) self.assertRedirects(response, expected_url='/rowers/team/{t}/'.format(t=self.t.id), status_code=302,target_status_code=200) @@ -202,13 +209,11 @@ class TeamCreateTest(TestCase): response = self.c.get(url,follow=True) self.assertEqual(response.status_code,200) - id, result = create_request(self.t,self.users[2].id) - self.assertTrue(id != 0) - + def test_teamview_manager_request(self): login = self.c.login(username=self.u.username, password = self.password) self.assertTrue(login) - url = '/rowers/me/invitation/{id}/reject/'.format(id=id) + url = '/rowers/me/request/{id}/reject/'.format(id=self.rekwest.id) response = self.c.get(url,follow=True) self.assertEqual(response.status_code,200) self.assertRedirects(response, @@ -231,6 +236,60 @@ class TeamCreateTest(TestCase): self.assertEqual(response.status_code, 200) +class TeamTestLowLevel(TestCase): + def setUp(self): + redis_connection.publish('tasks','KILL') + self.user_passwords = [] + usernames = [ + 'user1', + 'user2', + 'user3', + 'user4', + 'user5', + 'user6', + ] + self.users = [] + self.csvfilenames = [] + + 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, + clubsize=3 + ) + r.save() + + password = faker.word() + u.set_password(password) + u.save() + self.user_passwords.append(password) + + + workouts = WorkoutFactory.create_batch(5, user=r) + for w in workouts: + self.csvfilenames.append(w.csvfilename) + + + self.c = Client() + + self.u = self.users[0] + self.password = self.user_passwords[0] + + self.t = TeamFactory(manager=self.u) + + + def tearDown(self): + for csvfilename in self.csvfilenames: + try: + os.remove(csvfilename) + except (IOError, WindowsError): + pass def test_lowlevel_update_team(self): id, comment = update_team(self.t,faker.word(),self.u,'open',faker.text(),'allmembers') diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 8e35d372..a67f9afc 100644 Binary files a/rowers/tests/testdata/testdata.csv.gz and b/rowers/tests/testdata/testdata.csv.gz differ diff --git a/rowers/tests/testdata/testdata.tcx b/rowers/tests/testdata/testdata.tcx index f49f35e9..57cf726e 100644 --- a/rowers/tests/testdata/testdata.tcx +++ b/rowers/tests/testdata/testdata.tcx @@ -2502,7 +2502,7 @@ - <Element 'Notes' at 0x11aaf780> + <Element 'Notes' at 0x13f67128> diff --git a/rowers/views.py b/rowers/views.py index 06645727..9ca1329c 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -13537,13 +13537,6 @@ def rower_update_empower_view( except Rower.DoesNotExist: raise Http404("Rower doesn't exist") -# if 'startdate' in request.session: -# startdate = iso8601.parse_date(request.session['startdate']) - - -# if 'enddate' in request.session: -# enddate = iso8601.parse_date(request.session['enddate']) - if request.method == 'POST' and 'daterange' in request.POST: dateform = DateRangeForm(request.POST) if dateform.is_valid():