Skip to content

Commit af67965

Browse files
committed
add tests for serialising Column instances, and builtins
1 parent 6705646 commit af67965

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

tests/apps/migrations/auto/test_serialisation.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from unittest import TestCase
22

33
from piccolo.apps.migrations.auto.serialisation import serialise_params
4+
from piccolo.columns.column_types import Varchar
45
from piccolo.columns.defaults import DateNow, TimeNow, TimestampNow, UUID4
56
from piccolo.columns.reference import LazyTableReference
67

@@ -90,3 +91,33 @@ def test_lambda(self):
9091
self.assertEqual(
9192
manager.exception.__str__(), "Lambdas can't be serialised"
9293
)
94+
95+
def test_builtins(self):
96+
"""
97+
Make sure builtins can be serialised properly.
98+
"""
99+
serialised = serialise_params(params={"default": list})
100+
self.assertTrue(serialised.params["default"].__repr__() == "list")
101+
102+
self.assertTrue(len(serialised.extra_imports) == 0)
103+
104+
def test_column_instance(self):
105+
"""
106+
Make sure Column instances can be serialised properly. An example
107+
use case is when a `base_column` argument is passed to an `Array`
108+
column.
109+
"""
110+
serialised = serialise_params(params={"base_column": Varchar()})
111+
112+
self.assertEqual(
113+
serialised.params["base_column"].__repr__(),
114+
"Varchar(length=255, default='', null=False, primary=False, key=False, unique=False, index=False, index_method=IndexMethod.btree)", # noqa: E501
115+
)
116+
117+
self.assertEqual(
118+
{i.__repr__() for i in serialised.extra_imports},
119+
{
120+
"from piccolo.columns.column_types import Varchar",
121+
"from piccolo.columns.indexes import IndexMethod",
122+
},
123+
)

0 commit comments

Comments
 (0)