Skip to content

Commit

Permalink
Merge pull request #375 from jdufresne/create-args
Browse files Browse the repository at this point in the history
Simplify test object creation using keyword arguments
  • Loading branch information
kimarakov committed Jan 3, 2018
2 parents edea184 + 6c1a9cc commit cd4c32d
Show file tree
Hide file tree
Showing 7 changed files with 172 additions and 191 deletions.
11 changes: 5 additions & 6 deletions tests/test_calendar.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,11 @@ class Meta:

class TestCalendar(TestCase):
def __create_event(self, start, end):
data = {
'title': 'Recent Event',
'start': start,
'end': end
}
return Event.objects.create(**data)
return Event.objects.create(
title='Recent Event',
start=start,
end=end,
)

def test_get_recent_events_without_events_is_empty(self):
calendar = Calendar()
Expand Down
26 changes: 12 additions & 14 deletions tests/test_event.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,18 @@ def __create_recurring_event(self, title, start, end, end_recurring, rule, cal):

def test_edge_case_events(self):
cal = Calendar.objects.create(name="MyCal")
data_1 = {
'title': 'Edge case event test one',
'start': datetime.datetime(2013, 1, 5, 8, 0, tzinfo=pytz.utc),
'end': datetime.datetime(2013, 1, 5, 9, 0, tzinfo=pytz.utc),
'calendar': cal
}
data_2 = {
'title': 'Edge case event test two',
'start': datetime.datetime(2013, 1, 5, 9, 0, tzinfo=pytz.utc),
'end': datetime.datetime(2013, 1, 5, 12, 0, tzinfo=pytz.utc),
'calendar': cal
}
event_one = Event.objects.create(**data_1)
event_two = Event.objects.create(**data_2)
event_one = Event.objects.create(
title='Edge case event test one',
start=datetime.datetime(2013, 1, 5, 8, 0, tzinfo=pytz.utc),
end=datetime.datetime(2013, 1, 5, 9, 0, tzinfo=pytz.utc),
calendar=cal,
)
event_two = Event.objects.create(
title='Edge case event test two',
start=datetime.datetime(2013, 1, 5, 9, 0, tzinfo=pytz.utc),
end=datetime.datetime(2013, 1, 5, 12, 0, tzinfo=pytz.utc),
calendar=cal,
)
occurrences_two = event_two.get_occurrences(datetime.datetime(2013, 1, 5, 9, 0, tzinfo=pytz.utc),
datetime.datetime(2013, 1, 5, 12, 0, tzinfo=pytz.utc))
self.assertEqual(1, len(occurrences_two))
Expand Down
34 changes: 16 additions & 18 deletions tests/test_occurrence.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,30 +81,28 @@ def test_create_occurrence_without_event(self):
def test_get_occurrences_non_intersection_returns_empty_occ(self):
rule = Rule.objects.create(frequency="DAILY")
cal = Calendar.objects.create(name="MyCal")
recurring_data = {
'title': 'Recent Event',
'start': datetime.datetime(2016, 1, 5, 8, 0, tzinfo=pytz.utc),
'end': datetime.datetime(2016, 1, 5, 9, 0, tzinfo=pytz.utc),
'end_recurring_period': datetime.datetime(2016, 8, 5, 0, 0, tzinfo=pytz.utc),
'rule': rule,
'calendar': cal
}
recurring_event = Event.objects.create(**recurring_data)
recurring_event = Event.objects.create(
title='Recent Event',
start=datetime.datetime(2016, 1, 5, 8, 0, tzinfo=pytz.utc),
end=datetime.datetime(2016, 1, 5, 9, 0, tzinfo=pytz.utc),
end_recurring_period=datetime.datetime(2016, 8, 5, 0, 0, tzinfo=pytz.utc),
rule=rule,
calendar=cal,
)
occurrences = recurring_event.get_occurrences(start=self.start, end=self.end)
self.assertEqual(occurrences, [])

def test_get_occurrences_is_sorted(self):
rule = Rule.objects.create(frequency="DAILY")
cal = Calendar.objects.create(name="MyCal")
recurring_data = {
'title': 'Recent Event',
'start': datetime.datetime(2016, 1, 5, 8, 0, tzinfo=pytz.utc),
'end': datetime.datetime(2016, 1, 5, 9, 0, tzinfo=pytz.utc),
'end_recurring_period': datetime.datetime(2016, 8, 5, 0, 0, tzinfo=pytz.utc),
'rule': rule,
'calendar': cal
}
recurring_event = Event.objects.create(**recurring_data)
recurring_event = Event.objects.create(
title='Recent Event',
start=datetime.datetime(2016, 1, 5, 8, 0, tzinfo=pytz.utc),
end=datetime.datetime(2016, 1, 5, 9, 0, tzinfo=pytz.utc),
end_recurring_period=datetime.datetime(2016, 8, 5, 0, 0, tzinfo=pytz.utc),
rule=rule,
calendar=cal,
)

start = datetime.datetime(2016, 1, 12, 0, 0, tzinfo=pytz.utc)
end = datetime.datetime(2016, 1, 27, 0, 0, tzinfo=pytz.utc)
Expand Down
85 changes: 40 additions & 45 deletions tests/test_periods.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,14 @@ class TestPeriod(TestCase):
def setUp(self):
rule = Rule.objects.create(frequency="WEEKLY")
cal = Calendar.objects.create(name="MyCal")
data = {
'title': 'Recent Event',
'start': datetime.datetime(2008, 1, 5, 8, 0, tzinfo=pytz.utc),
'end': datetime.datetime(2008, 1, 5, 9, 0, tzinfo=pytz.utc),
'end_recurring_period': datetime.datetime(2008, 5, 5, 0, 0, tzinfo=pytz.utc),
'rule': rule,
'calendar': cal,
}
Event.objects.create(**data)
Event.objects.create(
title='Recent Event',
start=datetime.datetime(2008, 1, 5, 8, 0, tzinfo=pytz.utc),
end=datetime.datetime(2008, 1, 5, 9, 0, tzinfo=pytz.utc),
end_recurring_period=datetime.datetime(2008, 5, 5, 0, 0, tzinfo=pytz.utc),
rule=rule,
calendar=cal,
)
self.period = Period(
events=Event.objects.all(),
start=datetime.datetime(2008, 1, 4, 7, 0, tzinfo=pytz.utc),
Expand Down Expand Up @@ -99,15 +98,14 @@ class TestMonth(TestCase):
def setUp(self):
rule = Rule.objects.create(frequency="WEEKLY")
cal = Calendar.objects.create(name="MyCal")
data = {
'title': 'Recent Event',
'start': datetime.datetime(2008, 1, 5, 8, 0, tzinfo=pytz.utc),
'end': datetime.datetime(2008, 1, 5, 9, 0, tzinfo=pytz.utc),
'end_recurring_period': datetime.datetime(2008, 5, 5, 0, 0, tzinfo=pytz.utc),
'rule': rule,
'calendar': cal
}
Event.objects.create(**data)
Event.objects.create(
title='Recent Event',
start=datetime.datetime(2008, 1, 5, 8, 0, tzinfo=pytz.utc),
end=datetime.datetime(2008, 1, 5, 9, 0, tzinfo=pytz.utc),
end_recurring_period=datetime.datetime(2008, 5, 5, 0, 0, tzinfo=pytz.utc),
rule=rule,
calendar=cal,
)
self.month = Month(events=Event.objects.all(),
date=datetime.datetime(2008, 2, 7, 9, 0, tzinfo=pytz.utc))

Expand Down Expand Up @@ -279,15 +277,14 @@ class TestOccurrencePool(TestCase):
def setUp(self):
rule = Rule.objects.create(frequency="WEEKLY")
cal = Calendar.objects.create(name="MyCal")
data = {
'title': 'Recent Event',
'start': datetime.datetime(2008, 1, 5, 8, 0, tzinfo=pytz.utc),
'end': datetime.datetime(2008, 1, 5, 9, 0, tzinfo=pytz.utc),
'end_recurring_period': datetime.datetime(2008, 5, 5, 0, 0, tzinfo=pytz.utc),
'rule': rule,
'calendar': cal
}
self.recurring_event = Event.objects.create(**data)
self.recurring_event = Event.objects.create(
title='Recent Event',
start=datetime.datetime(2008, 1, 5, 8, 0, tzinfo=pytz.utc),
end=datetime.datetime(2008, 1, 5, 9, 0, tzinfo=pytz.utc),
end_recurring_period=datetime.datetime(2008, 5, 5, 0, 0, tzinfo=pytz.utc),
rule=rule,
calendar=cal,
)

def testPeriodFromPool(self):
"""
Expand All @@ -307,15 +304,14 @@ def setUp(self):
self.MVD = pytz.timezone('America/Montevideo')
cal = Calendar.objects.create(name="MyCal")
rule = Rule.objects.create(frequency="DAILY", params="byweekday:SA", name="Saturdays")
data = {
'title': 'Every Saturday Event',
'start': self.MVD.localize(datetime.datetime(2017, 1, 7, 22, 0)),
'end': self.MVD.localize(datetime.datetime(2017, 1, 7, 23, 0)),
'end_recurring_period': self.MVD.localize(datetime.datetime(2017, 2, 1)),
'rule': rule,
'calendar': cal,
}
Event.objects.create(**data)
Event.objects.create(
title='Every Saturday Event',
start=self.MVD.localize(datetime.datetime(2017, 1, 7, 22, 0)),
end=self.MVD.localize(datetime.datetime(2017, 1, 7, 23, 0)),
end_recurring_period=self.MVD.localize(datetime.datetime(2017, 2, 1)),
rule=rule,
calendar=cal,
)

@override_settings(TIME_ZONE='America/Montevideo')
def test_occurrences_with_TZ(self):
Expand Down Expand Up @@ -352,15 +348,14 @@ def setUp(self):
self.MVD = pytz.timezone('America/Montevideo') # UTC-3
cal = Calendar.objects.create(name="MyCal")
rule = Rule.objects.create(frequency="DAILY", name="daily")
data = {
'title': 'Test event',
'start': self.MVD.localize(datetime.datetime(2017, 1, 13, 15, 0)),
'end': self.MVD.localize(datetime.datetime(2017, 1, 14, 15, 0)),
'end_recurring_period': self.MVD.localize(datetime.datetime(2017, 1, 20)),
'rule': rule,
'calendar': cal
}
Event.objects.create(**data)
Event.objects.create(
title='Test event',
start=self.MVD.localize(datetime.datetime(2017, 1, 13, 15, 0)),
end=self.MVD.localize(datetime.datetime(2017, 1, 14, 15, 0)),
end_recurring_period=self.MVD.localize(datetime.datetime(2017, 1, 20)),
rule=rule,
calendar=cal,
)

def test_occurrences_inside_recurrence_period(self):
start = self.MVD.localize(datetime.datetime(2017, 1, 13))
Expand Down
30 changes: 14 additions & 16 deletions tests/test_templatetags.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,14 @@ def setUp(self):
rule = Rule.objects.create(frequency='WEEKLY')
self.cal = Calendar.objects.create(name='MyCal', slug='MyCalSlug')

data = {
'title': 'Recent Event',
'start': datetime.datetime(datetime.datetime.now().year, 1, 5, 8, 0, tzinfo=pytz.utc),
'end': datetime.datetime(datetime.datetime.now().year, 1, 5, 9, 0, tzinfo=pytz.utc),
'end_recurring_period': datetime.datetime(datetime.datetime.now().year, 5, 5, 0, 0, tzinfo=pytz.utc),
'rule': rule,
'calendar': self.cal,
}
Event.objects.create(**data)
Event.objects.create(
title='Recent Event',
start=datetime.datetime(datetime.datetime.now().year, 1, 5, 8, 0, tzinfo=pytz.utc),
end=datetime.datetime(datetime.datetime.now().year, 1, 5, 9, 0, tzinfo=pytz.utc),
end_recurring_period=datetime.datetime(datetime.datetime.now().year, 5, 5, 0, 0, tzinfo=pytz.utc),
rule=rule,
calendar=self.cal,
)
self.period = Period(events=Event.objects.all(),
start=datetime.datetime(datetime.datetime.now().year, 1, 4, 7, 0, tzinfo=pytz.utc),
end=datetime.datetime(datetime.datetime.now().year, 1, 21, 7, 0, tzinfo=pytz.utc))
Expand Down Expand Up @@ -80,13 +79,12 @@ def test_all_day_event_cook_slots(self):
datetime.datetime.now().year, 1, 5, 0, 0, tzinfo=pytz.utc)
end = datetime.datetime(
datetime.datetime.now().year, 1, 6, 0, 0, tzinfo=pytz.utc)
data = {
'title': 'All Day Event',
'start': start,
'end': end,
'calendar': self.cal,
}
event = Event.objects.create(**data)
event = Event.objects.create(
title='All Day Event',
start=start,
end=end,
calendar=self.cal,
)
period = Day([event], start, end)

slots = _cook_slots(period, 60)
Expand Down
64 changes: 32 additions & 32 deletions tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,22 @@ def setUp(self):
cal = Calendar.objects.create(name="MyCal")
self.default_tzinfo = timezone.get_default_timezone()

self.event1 = Event.objects.create(**{
'title': 'Weekly Event',
'start': datetime.datetime(2009, 4, 1, 8, 0, tzinfo=self.default_tzinfo),
'end': datetime.datetime(2009, 4, 1, 9, 0, tzinfo=self.default_tzinfo),
'end_recurring_period': datetime.datetime(2009, 10, 5, 0, 0, tzinfo=self.default_tzinfo),
'rule': weekly,
'calendar': cal
})
self.event2 = Event.objects.create(**{
'title': 'Recent Event',
'start': datetime.datetime(2008, 1, 5, 9, 0, tzinfo=self.default_tzinfo),
'end': datetime.datetime(2008, 1, 5, 10, 0, tzinfo=self.default_tzinfo),
'end_recurring_period': datetime.datetime(2009, 5, 5, 0, 0, tzinfo=self.default_tzinfo),
'rule': daily,
'calendar': cal
})
self.event1 = Event.objects.create(
title='Weekly Event',
start=datetime.datetime(2009, 4, 1, 8, 0, tzinfo=self.default_tzinfo),
end=datetime.datetime(2009, 4, 1, 9, 0, tzinfo=self.default_tzinfo),
end_recurring_period=datetime.datetime(2009, 10, 5, 0, 0, tzinfo=self.default_tzinfo),
rule=weekly,
calendar=cal,
)
self.event2 = Event.objects.create(
title='Recent Event',
start=datetime.datetime(2008, 1, 5, 9, 0, tzinfo=self.default_tzinfo),
end=datetime.datetime(2008, 1, 5, 10, 0, tzinfo=self.default_tzinfo),
end_recurring_period=datetime.datetime(2009, 5, 5, 0, 0, tzinfo=self.default_tzinfo),
rule=daily,
calendar=cal,
)

def test_occurrences_after(self):
eml = EventListManager([self.event1, self.event2])
Expand All @@ -60,29 +60,29 @@ def setUp(self):
self.default_tzinfo = timezone.get_default_timezone()
self.start = timezone.now() - datetime.timedelta(days=10)
self.end = self.start + datetime.timedelta(days=300)
self.event1 = Event.objects.create(**{
'title': 'Weekly Event',
'start': self.start,
'end': self.end,
'end_recurring_period': self.end,
'rule': weekly,
'calendar': cal
})
self.event1 = Event.objects.create(
title='Weekly Event',
start=self.start,
end=self.end,
end_recurring_period=self.end,
rule=weekly,
calendar=cal,
)
self.occ = Occurrence.objects.create(
event=self.event1,
start=self.start,
end=self.end,
original_start=self.start,
original_end=self.end)

self.event2 = Event.objects.create(**{
'title': 'Recent Event',
'start': datetime.datetime(2008, 1, 5, 9, 0, tzinfo=self.default_tzinfo),
'end': datetime.datetime(2008, 1, 5, 10, 0, tzinfo=self.default_tzinfo),
'end_recurring_period': datetime.datetime(2009, 5, 5, 0, 0, tzinfo=self.default_tzinfo),
'rule': daily,
'calendar': cal
})
self.event2 = Event.objects.create(
title='Recent Event',
start=datetime.datetime(2008, 1, 5, 9, 0, tzinfo=self.default_tzinfo),
end=datetime.datetime(2008, 1, 5, 10, 0, tzinfo=self.default_tzinfo),
end_recurring_period=datetime.datetime(2009, 5, 5, 0, 0, tzinfo=self.default_tzinfo),
rule=daily,
calendar=cal,
)

def test_has_occurrence(self):
other_occ = Occurrence.objects.create(
Expand Down
Loading

0 comments on commit cd4c32d

Please sign in to comment.