You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

45 lines
1.4 KiB

from datetime import datetime as dt, timedelta as td
from django.test import TestCase
from hc.lib.date import format_hms, choose_next_report_date
class DateFormattingTestCase(TestCase):
def test_mins_secs_work(self):
s = format_hms(td(seconds=0))
self.assertEqual(s, "0 sec")
s = format_hms(td(seconds=1))
self.assertEqual(s, "1 sec")
s = format_hms(td(seconds=61))
self.assertEqual(s, "1 min 1 sec")
s = format_hms(td(seconds=62))
self.assertEqual(s, "1 min 2 sec")
def test_hours_work(self):
s = format_hms(td(seconds=62 + 60 * 60))
self.assertEqual(s, "1 h 1 min 2 sec")
s = format_hms(td(seconds=60 * 60))
self.assertEqual(s, "1 h 0 min 0 sec")
class NextReportDateTestCase(TestCase):
def test_it_works(self):
# October
nao = dt(year=2019, month=10, day=15, hour=6)
result = choose_next_report_date(nao)
self.assertEqual(result.year, 2019)
self.assertEqual(result.month, 11)
self.assertEqual(result.day, 1)
self.assertTrue(result.hour >= 12)
# December
nao = dt(year=2019, month=12, day=15, hour=6)
result = choose_next_report_date(nao)
self.assertEqual(result.year, 2020)
self.assertEqual(result.month, 1)
self.assertEqual(result.day, 1)
self.assertTrue(result.hour >= 12)