• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tjcsl / ion / 3858230717

pending completion
3858230717

push

github

GitHub
feat(misc): account for negative day streaks

2765 of 4672 branches covered (59.18%)

15346 of 18757 relevant lines covered (81.81%)

0.82 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

78.57
/intranet/utils/date.py
1
import calendar
1✔
2
import datetime
1✔
3

4
from django.conf import settings
1✔
5
from django.utils import timezone
1✔
6

7

8
def is_current_year(date):
1✔
9
    start_date, end_date = get_date_range_this_year()
1✔
10
    return start_date <= date <= end_date
1✔
11

12

13
def get_date_range_this_year(now=None):
1✔
14
    """Return the starting and ending date of the current school year."""
15
    if now is None:
1!
16
        now = timezone.localdate()
1✔
17
    if now.month <= settings.YEAR_TURNOVER_MONTH:
1!
18
        if settings.YEAR_TURNOVER_MONTH < 12:
1!
19
            date_start = datetime.datetime(now.year - 1, settings.YEAR_TURNOVER_MONTH + 1, 1, 0, 0, 0)
1✔
20
        else:
21
            date_start = datetime.datetime(now.year, 1, 1, 0, 0, 0)
×
22
        date_end = datetime.datetime(
1✔
23
            now.year, settings.YEAR_TURNOVER_MONTH, calendar.monthrange(now.year, settings.YEAR_TURNOVER_MONTH)[1], 23, 59, 59
24
        )
25
    else:
26
        date_start = datetime.datetime(now.year, settings.YEAR_TURNOVER_MONTH + 1, 1, 0, 0, 0)
×
27
        date_end = datetime.datetime(now.year + 1, settings.YEAR_TURNOVER_MONTH, 1, 0, 0, 0)
×
28
    return timezone.make_aware(date_start), timezone.make_aware(date_end)
1✔
29

30

31
def get_senior_graduation_year(*, now=None):
1✔
32
    return get_date_range_this_year(now=now)[1].year
1✔
33

34

35
def get_senior_graduation_date():
1✔
36
    return settings.SENIOR_GRADUATION_DATE.replace(year=get_senior_graduation_year())
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc