bullish/backend/app/tests.py
Ameya Shenoy 72bd0a1a07
fix: monday before publish time to return friday
- add relevant test to ensure doesn't happen again
- fix test_today_before_publish_time

Signed-off-by: Ameya Shenoy <shenoy.ameya@gmail.com>
2021-02-15 13:22:15 +05:30

46 lines
1.8 KiB
Python

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())