test_subscriptions.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import datetime
  2. from pytz import timezone
  3. from django.test import TestCase
  4. from ..subscriptions import Subscription
  5. class SubscriptionFixture(TestCase):
  6. eastern = timezone("US/Eastern")
  7. title = "test title"
  8. start_date = datetime.datetime(2013, 1, 1, tzinfo=eastern)
  9. duration = 12
  10. expected_first_issue = datetime.datetime(2013, 1, 3, tzinfo=eastern)
  11. expected_last_issue = datetime.datetime(2014, 1, 2, tzinfo=eastern)
  12. def setUp(self):
  13. self.result = Subscription(self.title, self.start_date, self.duration)
  14. def test_set_startdate(self):
  15. first_issue = Subscription._calculate_first_issue(self.start_date)
  16. def test(self):
  17. self.assertEquals(self.result.title, self.title)
  18. self.assertEquals(self.result.purchase_date, self.start_date)
  19. self.assertEquals(self.result.duration, self.duration)
  20. self.assertEquals(self.result.first_issue, self.expected_first_issue)
  21. self.assertEquals(self.result.last_issue, self.expected_last_issue)
  22. class BrokenDate(SubscriptionFixture):
  23. eastern = timezone("US/Eastern")
  24. start_date = datetime.datetime(2013, 3, 2, tzinfo=eastern)
  25. expected_first_issue = datetime.datetime(2013, 3, 7, tzinfo=eastern)
  26. expected_last_issue = datetime.datetime(2014, 3, 6, tzinfo=eastern)