From 2945a607bf0a8887a923e656e0af3991a0c6ea9a Mon Sep 17 00:00:00 2001 From: Tom Price Date: Fri, 18 Mar 2016 16:27:20 +0000 Subject: [PATCH] Add more tests for models.Event properties --- RIGS/test_models.py | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/RIGS/test_models.py b/RIGS/test_models.py index ad87297b..a46410a2 100644 --- a/RIGS/test_models.py +++ b/RIGS/test_models.py @@ -1,6 +1,8 @@ +import pytz +from django.conf import settings from django.test import TestCase from RIGS import models -from datetime import date, timedelta +from datetime import date, timedelta, datetime, time from decimal import * @@ -201,6 +203,46 @@ class EventTestCase(TestCase): event.status = models.Event.PROVISIONAL event.save() + def test_earliest_time(self): + event = models.Event(name="TE ET", start_date=date(2016, 01, 01)) + + # Just a start date + self.assertEqual(event.earliest_time, date(2016, 01, 01)) + + # With start time + event.start_time = time(9, 00) + self.assertEqual(event.earliest_time, self.create_datetime(2016, 1, 1, 9, 00)) + + # With access time + event.access_at = self.create_datetime(2015, 12, 03, 9, 57) + self.assertEqual(event.earliest_time, event.access_at) + + # With meet time + event.meet_at = self.create_datetime(2015, 12, 03, 9, 55) + self.assertEqual(event.earliest_time, event.meet_at) + + # Check order isn't important + event.start_date = date(2015, 12, 03) + self.assertEqual(event.earliest_time, self.create_datetime(2015, 12, 03, 9, 00)) + + def test_latest_time(self): + event = models.Event(name="TE LT", start_date=date(2016, 01, 01)) + + # Just start date + self.assertEqual(event.latest_time, event.start_date) + + # Just end date + event.end_date = date(2016, 1, 2) + self.assertEqual(event.latest_time, event.end_date) + + # With end time + event.end_time = time(23, 00) + self.assertEqual(event.latest_time, self.create_datetime(2016, 1, 2, 23, 00)) + + def create_datetime(self, year, month, day, hour, min): + tz = pytz.timezone(settings.TIME_ZONE) + return tz.localize(datetime(year, month, day, hour, min)) + class EventItemTestCase(TestCase): def setUp(self):