bullish/backend/app/tests.py

47 lines
1.8 KiB
Python
Raw Normal View History

from django.test import TestCase
from unittest import mock
from app.utils import verify_date
import datetime
# Create your tests here.
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))
date, _ = verify_date('2021-02-12', '')
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())
@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())