11from unittest import TestCase
22
33from piccolo .apps .migrations .auto .serialisation import serialise_params
4-
54from piccolo .columns .defaults import DateNow , TimeNow , TimestampNow , UUID4
5+ from piccolo .columns .reference import LazyTableReference
66
77
88class TestSerialiseParams (TestCase ):
@@ -28,3 +28,33 @@ def test_timestamp(self):
2828 def test_uuid (self ):
2929 serialised = serialise_params (params = {"default" : UUID4 ()})
3030 self .assertTrue (serialised .params ["default" ].__repr__ () == "UUID4()" )
31+
32+ def test_lazy_table_reference (self ):
33+ # These are equivalent:
34+ references_list = [
35+ LazyTableReference (
36+ table_class_name = "Manager" , app_name = "example_app"
37+ ),
38+ LazyTableReference (
39+ table_class_name = "Manager" ,
40+ module_path = "tests.example_app.tables" ,
41+ ),
42+ ]
43+
44+ for references in references_list :
45+ serialised = serialise_params (params = {"references" : references })
46+ self .assertTrue (
47+ serialised .params ["references" ].__repr__ () == "Manager"
48+ )
49+
50+ self .assertTrue (len (serialised .extra_imports ) == 1 )
51+ self .assertEqual (
52+ serialised .extra_imports [0 ].__str__ (),
53+ "from piccolo.table import Table" ,
54+ )
55+
56+ self .assertTrue (len (serialised .extra_definitions ) == 1 )
57+ self .assertEqual (
58+ serialised .extra_definitions [0 ].__str__ (),
59+ 'class Manager(Table, tablename="manager"): pass' ,
60+ )
0 commit comments