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_sub_second_works(self):
|
|
s = format_hms(td(seconds=0.12))
|
|
self.assertEqual(s, "0.12 sec")
|
|
|
|
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)
|