示例#1
0
文件: models.py 项目: Graoumpf/ccvpn
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)
示例#2
0
文件: models.py 项目: Graoumpf/ccvpn
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)