2021-02-08 21:11:41 +00:00
|
|
|
from django.test import TestCase
|
2021-02-14 11:29:35 +00:00
|
|
|
from unittest import mock
|
|
|
|
|
from app.utils import verify_date
|
|
|
|
|
import datetime
|
2021-02-08 21:11:41 +00:00
|
|
|
|
|
|
|
|
# Create your tests here.
|
2021-02-14 11:29:35 +00:00
|
|
|
class StubDate(datetime.datetime):
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestApp(TestCase):
|
|
|
|
|
"""Test app utils.
|
|
|
|
|
|
|
|
|
|
Publish time: datetime.datetime(2021, 2, 14, 12, 30)
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
@mock.patch('app.utils.datetime.datetime', StubDate)
|
|
|
|
|
def test_today_before_publish_time(self):
|
|
|
|
|
StubDate.now = classmethod(lambda cls: datetime.datetime(2021, 2, 12, 8, 0, 0))
|
2021-02-15 07:52:15 +00:00
|
|
|
date, _ = verify_date('2021-02-12', '')
|
2021-02-14 11:29:35 +00:00
|
|
|
self.assertEqual(date.date(), datetime.datetime(2021, 2, 11).date())
|
|
|
|
|
|
|
|
|
|
@mock.patch('app.utils.datetime.datetime', StubDate)
|
|
|
|
|
def test_today_after_publish_time(self):
|
|
|
|
|
StubDate.now = classmethod(lambda cls: datetime.datetime(2021, 2, 12, 13, 0, 0))
|
|
|
|
|
date, _ = verify_date('2021-02-14', '')
|
|
|
|
|
self.assertEqual(date.date(), datetime.datetime(2021, 2, 12).date())
|
|
|
|
|
|
|
|
|
|
@mock.patch('app.utils.datetime.datetime', StubDate)
|
|
|
|
|
def test_weekend_returns_friday(self):
|
|
|
|
|
StubDate.now = classmethod(lambda cls: datetime.datetime(2021, 2, 14, 13, 0, 0))
|
|
|
|
|
date, _ = verify_date('2021-02-14', '')
|
|
|
|
|
self.assertEqual(date.date(), datetime.datetime(2021, 2, 12).date())
|
|
|
|
|
|
|
|
|
|
@mock.patch('app.utils.datetime.datetime', StubDate)
|
|
|
|
|
def test_a_future_date(self):
|
|
|
|
|
StubDate.now = classmethod(lambda cls: datetime.datetime(2021, 2, 15, 13, 0, 0))
|
|
|
|
|
date, _ = verify_date('2021-02-20', '')
|
|
|
|
|
self.assertEqual(date.date(), datetime.datetime(2021, 2, 15).date())
|
|
|
|
|
|
2021-02-15 07:52:15 +00:00
|
|
|
@mock.patch('app.utils.datetime.datetime', StubDate)
|
|
|
|
|
def test_monday_before_publish_time(self):
|
|
|
|
|
StubDate.now = classmethod(lambda cls: datetime.datetime(2021, 2, 15, 8, 0, 0))
|
|
|
|
|
date, _ = verify_date('2021-02-15', '')
|
|
|
|
|
self.assertEqual(date.date(), datetime.datetime(2021, 2, 12).date())
|
|
|
|
|
|