llazzaro / django-scheduler

A calendaring app for Django.
BSD 3-Clause "New" or "Revised" License
1.27k stars 391 forks source link

Save the calendar instance before testing occurences_after #535

Closed francoisfreitag closed 1 year ago

francoisfreitag commented 1 year ago

An unsaved instance can’t have related objects in the database (occurrence_set).

Fixes failure in Django 4.1:


ERROR: test_occurrences_after_without_events_is_empty (tests.test_calendar.TestCalendar)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/work/django-scheduler/django-scheduler/tests/test_calendar.py", line 34, in test_occurrences_after_without_events_is_empty
    self.assertEqual(list(calendar.occurrences_after(timezone.now())), [])
  File "/home/runner/work/django-scheduler/django-scheduler/schedule/models/calendars.py", line 176, in occurrences_after
    return EventListManager(self.events.all()).occurrences_after(date)
  File "/home/runner/work/django-scheduler/django-scheduler/schedule/models/calendars.py", line 154, in events
    return self.event_set
  File "/home/runner/work/django-scheduler/django-scheduler/.tox/django41/lib/python3.8/site-packages/django/db/models/fields/related_descriptors.py", line 596, in __get__
    instance_cache[key] = self.related_manager_cls(instance)
  File "/home/runner/work/django-scheduler/django-scheduler/.tox/django41/lib/python3.8/site-packages/django/db/models/fields/related_descriptors.py", line 634, in __init__
    raise ValueError(
ValueError: 'Calendar' instance needs to have a primary key value before this relationship can be used.
coveralls commented 1 year ago

Coverage Status

Coverage remained the same at 79.958% when pulling d74e40ba1cf398b5c8dcfd14b3ca2fb1c7d65392 on francoisfreitag:test into 41c1342380a32e56349e6a22f564878950aa161e on llazzaro:develop.