Files
viewflow/tests/json/test_json__integer.py
Mikhail Podgurskiy 11a7e3d39f Bump version
2023-09-29 12:59:19 +06:00

43 lines
1.1 KiB
Python

from django.db import models
from django.test import TestCase
from viewflow import jsonstore
class IntegerFieldModel(models.Model):
data = models.JSONField(default=dict)
integer_field = jsonstore.IntegerField(null=True)
default_integer_field = jsonstore.IntegerField(default=42)
class Test(TestCase):
def test_crud(self):
model = IntegerFieldModel(integer_field=5)
self.assertIsInstance(
model._meta.get_field("integer_field"), models.IntegerField
)
self.assertEqual(
model.data,
{
"integer_field": 5,
},
)
model.save()
model = IntegerFieldModel.objects.get()
self.assertEqual(
model.data,
{
"integer_field": 5,
},
)
self.assertEqual(model.integer_field, 5)
def test_null_value(self):
model = IntegerFieldModel()
self.assertEqual(model.integer_field, None)
self.assertEqual(model.data, {})
def test_default_value(self):
model = IntegerFieldModel()
self.assertEqual(model.default_integer_field, 42)