class TestGiftCodeModel(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.session = setup_database() self.u = User(username='******', password='******') DBSession.add(self.u) self.session.flush() self.pu = User(username='******', password='******') self.pu.add_paid_time(datetime.timedelta(days=30)) DBSession.add(self.pu) self.session.flush() def tearDown(self): testing.tearDown() self.session.remove() def test_username_if_used(self): gc = GiftCode() self.assertIs(gc.username_if_used, False) gc.used = self.u.id gc.user = self.u self.assertEqual(gc.username_if_used, self.u.username) def test_use_freeonly(self): gc = GiftCode() gc.free_only = True self.assertRaises(models.AlreadyUsedGiftCode, gc.use, self.pu) gc.use(self.u) self.assertTrue(self.u.is_paid) def test_use_reuse(self): time = datetime.timedelta(days=30, hours=11) gc = GiftCode(time=time) gc.use(self.u) self.assertEqual(self.u.paid_time_left().days, time.days) self.assertRaises(models.AlreadyUsedGiftCode, gc.use, self.u) self.assertEqual(self.u.paid_time_left().days, time.days) gc.use(self.u, reuse=True) self.assertTrue(self.u.is_paid) self.assertEqual(self.u.paid_time_left().days, time.days*2)
class TestGiftCodeModel(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.session = setup_database() self.u = User(username='******', password='******') DBSession.add(self.u) self.session.flush() self.pu = User(username='******', password='******') self.pu.add_paid_time(datetime.timedelta(days=30)) DBSession.add(self.pu) self.session.flush() def tearDown(self): testing.tearDown() self.session.remove() def test_username_if_used(self): gc = GiftCode() self.assertIs(gc.username_if_used, False) gc.used = self.u.id gc.user = self.u self.assertEqual(gc.username_if_used, self.u.username) def test_use_freeonly(self): gc = GiftCode() gc.free_only = True self.assertRaises(models.AlreadyUsedGiftCode, gc.use, self.pu) gc.use(self.u) self.assertTrue(self.u.is_paid) def test_use_reuse(self): time = datetime.timedelta(days=30, hours=11) gc = GiftCode(time=time) gc.use(self.u) self.assertEqual(self.u.paid_time_left().days, time.days) self.assertRaises(models.AlreadyUsedGiftCode, gc.use, self.u) self.assertEqual(self.u.paid_time_left().days, time.days) gc.use(self.u, reuse=True) self.assertTrue(self.u.is_paid) self.assertEqual(self.u.paid_time_left().days, time.days * 2)