lostplaces-backend/lostplaces/lostplaces_app/tests/models/test_voucher_model.py
2020-09-13 19:12:32 +02:00

53 lines
1.4 KiB
Python

import datetime
from django.test import TestCase
from django.db import models
from django.utils import timezone
from lostplaces_app.models import Voucher
from lostplaces_app.tests.models import ModelTestCase
class VoucheTestCase(ModelTestCase):
model = Voucher
@classmethod
def setUpTestData(cls):
Voucher.objects.create(
code='ayDraJCCwfhcFiYmSR5GrcjcchDfcahv',
expires_when=timezone.now() + datetime.timedelta(days=1)
)
def setUp(self):
self.voucher = Voucher.objects.get(id=1)
def test_voucher_code(self):
self.assertCharField(
field_name='code',
min_length=10,
max_length=100,
must_have={'unique': True}
)
def test_voucher_created(self):
self.assertField(
field_name='created_when',
field_class=models.DateTimeField,
must_have={'auto_now_add': True}
)
def test_voucher_expires(self):
self.assertField(
field_name='expires_when',
field_class=models.DateTimeField,
must_not_have={'auto_now_add': True}
)
def test_str(self):
self.assertTrue(
self.voucher.code.lower() in str(self.voucher).lower(),
msg='Expecting %s.__str__ to contain the voucher code' % (
self.model.__name__
)
)