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)
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)
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))
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)
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)
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)
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)
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)
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)
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)
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)
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])]), ])
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)
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)
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)
def setUp(self): user = test.create_user('user', 'password') self.team = test.create_team(user=user) self.week = test.create_week()