Example #1
0
 def test_get_week_with_weeks(self):
     """
     Returns the corresponding week, either next or previous.
     """
     week = test.create_week()
     previous = test.create_week(monday=date(2017,7,3))
     self.assertEqual(week.get_week(-1), previous)
Example #2
0
 def test_get_or_create_weeks_with_weeks(self):
     """
     The previous, current, and next weeks should be added to a dict.
     """
     previous_week = test.create_week(monday=funct.get_monday(None, 0))
     previous_week.populate()
     current_week = test.create_week(monday=funct.get_monday())
     current_week.populate()
     next_week = test.create_week(monday=funct.get_monday(None, 1))
     next_week.populate()
     weeks = funct.get_or_create_weeks(0)
     self.assertEqual(sorted(weeks.keys()), ['current', 'next', 'previous'])
     self.assertEqual(weeks['current'].monday, current_week.monday)
     self.assertEqual(weeks['previous'].monday, previous_week.monday)
     self.assertEqual(weeks['next'].monday, next_week.monday)
Example #3
0
    def test_calculate_intervals(self):
        """
        Calculates intervals for a set and returns nothing.
        """
        week = test.create_week()
        week.populate()
        team = test.create_team(self.user)
        swimmer1 = test.create_swimmer(team)
        swimmer2 = test.create_swimmer(team, first='Dave', last='Thornton')
        base1_free = test.create_event(swimmer1, 'base free',
                                       timedelta(seconds=25))
        base2_free = test.create_event(swimmer2, 'base free',
                                       timedelta(seconds=24))

        training_model = test.create_training_model(team)
        training_mult = test.create_training_multiplier(training_model,
                                                        multiplier=0.07)

        practice = test.create_practice(team, week)
        setInstance = test.create_set(practice, swimmers=[swimmer1, swimmer2])
        rep1 = test.create_rep(setInstance)

        funct.calculate_intervals(setInstance, training_model)
        intervals = Interval.objects.filter(rep=rep1)
        self.assertEqual(intervals[0].swimmer.l_name, 'Gridley')
        self.assertEqual(intervals[1].swimmer.l_name, 'Thornton')
        self.assertEqual(intervals[0].time, timedelta(seconds=55))
        self.assertEqual(intervals[1].time, timedelta(seconds=55))
Example #4
0
    def test_check_present_with_no_present_week(self):
        """
        Sets all current boolean values to False and returns False.
        """
        week1 = test.create_week(monday=(date.today() - relativedelta(days=7)))
        week1.populate()
        week2 = test.create_week(monday=(date.today() + relativedelta(days=7)),
                                 present=True)
        week2.populate()

        out = funct.check_present()

        for week in [week1, week2]:
            week.refresh_from_db()

        self.assertTrue(out)
        self.assertFalse(week1.present)
        self.assertFalse(week2.present)
Example #5
0
 def test_get_monday_next(self):
     """
     Returns next Monday. To test, uncomment and change next_mon date.
     Tested and works.
     """
     week = test.create_week()
     week.populate()
     monday = funct.get_monday(week, 1)
     next_mon = date(2017, 7, 17)
     self.assertEqual(monday, next_mon)
Example #6
0
 def test_get_monday_previous(self):
     """
     Returns previous Monday. To test, uncomment and change previous_mon date.
     Tested and works.
     """
     week = test.create_week()
     week.populate()
     monday = funct.get_monday(week, 0)
     previous_mon = date(2017, 7, 3)
     self.assertEqual(monday, previous_mon)
Example #7
0
 def test_get_monday_present(self):
     """
     Returns most recent Monday. To test, uncomment and change current_mon date.
     Tested and works.
     """
     week = test.create_week()
     week.populate()
     monday = funct.get_monday(week=week)
     current_mon = date(2017, 7, 10)
     self.assertEqual(monday, current_mon)
Example #8
0
    def test_clean_weekday(self):
        """
        Only one practice can exist on a weekday for each given week.
        """
        week1 = test.create_week(monday=date.today())
        week1.populate()
        week2 = test.create_week(monday=(date.today() + relativedelta(days=7)))
        week2.populate()
        team = test.create_team(user=self.user)
        practice1 = test.create_practice(team, week1)
        practice2 = test.create_practice(team, week1)
        practice3 = test.create_practice(team, week2)

        funct.clean_weekday(team, practice2)

        practices = Practice.objects.all()
        self.assertQuerysetEqual(practices,
                                 ['<Practice: monday>', '<Practice: monday>'],
                                 ordered=False)
        self.assertTrue(practice1 not in practices)
Example #9
0
 def test_populate(self):
     """
     When given the date for a Monday, the Week object will populate the dates
     for every day of the week.
     """
     week = test.create_week()
     week.populate()
     tuesday = date(2017,7,11)
     sunday = date(2017,7,16)
     self.assertEqual(week.tuesday, tuesday)
     self.assertEqual(week.sunday, sunday)
Example #10
0
    def test_check_present_with_present_week(self):
        """
        Sets the boolean value of the correct present week to True and all others
        to False. The function also returns True.
        """
        mon_present = funct.get_monday(n=None)
        mon_previous = funct.get_monday(n=0)
        mon_next = funct.get_monday(n=1)
        week1 = test.create_week(monday=mon_present)
        week1.populate()
        week2 = test.create_week(monday=mon_previous)
        week2.populate()
        week3 = test.create_week(monday=mon_next, present=True)
        week3.populate()

        out = funct.check_present()

        for week in [week1, week2, week3]:
            week.refresh_from_db()

        self.assertTrue(out)
        self.assertTrue(week1.present)
        self.assertFalse(week2.present)
        self.assertFalse(week3.present)
Example #11
0
 def test_date_range(self):
     """
     Yields all dates in a given week.
     """
     week = test.create_week()
     week.populate()
     dates = [
         date(2017,7,10),
         date(2017,7,11),
         date(2017,7,12),
         date(2017,7,13),
         date(2017,7,14),
         date(2017,7,15),
         date(2017,7,16),
     ]
     returned_dates = []
     for day in week.date_range():
         returned_dates.append(day)
     self.assertEqual(dates, returned_dates)
Example #12
0
    def test_get_zipped_set(self):
        """
        Returns list of tuples containing the rep, swimmer, and interval.
        """
        week = test.create_week()
        week.populate()
        team = test.create_team(self.user)
        swimmer1 = test.create_swimmer(team)
        swimmer2 = test.create_swimmer(team, first='Dave', last='Thornton')
        base1_free = test.create_event(swimmer1, 'base free',
                                       timedelta(seconds=25))
        base2_free = test.create_event(swimmer2, 'base free',
                                       timedelta(seconds=24))

        practice = test.create_practice(team, week)
        setInstance = test.create_set(practice, swimmers=[swimmer1, swimmer2])
        rep1 = test.create_rep(setInstance)

        training_model = test.create_training_model(team)

        funct.calculate_intervals(setInstance, training_model)
        intervals = Interval.objects.filter(rep=rep1)
        set_zip = funct.get_zipped_set(setInstance)

        self.assertEqual(set_zip, [
            (swimmer1, [(rep1, None)]),
            (swimmer2, [(rep1, None)]),
        ])

        training_mult = test.create_training_multiplier(training_model,
                                                        multiplier=0.07)

        funct.calculate_intervals(setInstance, training_model)
        intervals = Interval.objects.filter(rep=rep1)
        set_zip = funct.get_zipped_set(setInstance)

        self.assertEqual(set_zip, [
            (swimmer1, [(rep1, intervals[0])]),
            (swimmer2, [(rep1, intervals[1])]),
        ])
Example #13
0
 def test_get_week_with_no_weeks(self):
     """
     Raises a DoesNotExist error if either week has not been created.
     """
     week = test.create_week()
     self.assertRaises(Week.DoesNotExist, week.get_week, n=1)
Example #14
0
 def setUp(self):
     user = test.create_user('user', 'password')
     team = test.create_team(user=user)
     week = test.create_week()
     practice = test.create_practice(team, week)
     self.test_set = test.create_set(practice=practice)
Example #15
0
 def setUp(self):
     user = test.create_user('user', 'password')
     self.team = test.create_team(user=user)
     week = test.create_week()
     self.practice = test.create_practice(self.team, week)
Example #16
0
 def setUp(self):
     user = test.create_user('user', 'password')
     self.team = test.create_team(user=user)
     self.week = test.create_week()