bullish/backend/app/tests.py
Ameya Shenoy 04d46d06b0
fix: verify date with TDD
- add tests for the function

Signed-off-by: Ameya Shenoy <shenoy.ameya@gmail.com>
2021-02-14 16:59:35 +05:30

40 lines
1.5 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-14', '')
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())