11from unittest import TestCase
22
3- from tests .base import engine_is
4- from tests .example_apps .music .tables import Manager
3+ from piccolo .apps .playground .commands .run import Genre , Manager
54
65
76class TestTableStr (TestCase ):
8- def test_str (self ):
9- if engine_is ("cockroach" ):
10- self .assertEqual (
11- Manager ._table_str (),
12- (
13- "class Manager(Table, tablename='manager'):\n "
14- " id = Serial(null=False, primary_key=True, unique=False, index=False, index_method=IndexMethod.btree, choices=None, db_column_name='id', secret=False)\n " # noqa: E501
15- " name = Varchar(length=50, default='', null=False, primary_key=False, unique=False, index=False, index_method=IndexMethod.btree, choices=None, db_column_name=None, secret=False)\n " # noqa: E501
16- ),
17- )
18- else :
19- self .assertEqual (
20- Manager ._table_str (),
21- (
22- "class Manager(Table, tablename='manager'):\n "
23- " id = Serial(null=False, primary_key=True, unique=False, index=False, index_method=IndexMethod.btree, choices=None, db_column_name='id', secret=False)\n " # noqa: E501
24- " name = Varchar(length=50, default='', null=False, primary_key=False, unique=False, index=False, index_method=IndexMethod.btree, choices=None, db_column_name=None, secret=False)\n " # noqa: E501
25- ),
26- )
7+ def test_all_attributes (self ):
8+ self .assertEqual (
9+ Manager ._table_str (),
10+ (
11+ "class Manager(Table, tablename='manager'):\n "
12+ " id = Serial(null=False, primary_key=True, unique=False, index=False, index_method=IndexMethod.btree, choices=None, db_column_name='id', secret=False)\n " # noqa: E501
13+ " name = Varchar(length=50, default='', null=False, primary_key=False, unique=False, index=False, index_method=IndexMethod.btree, choices=None, db_column_name=None, secret=False)\n " # noqa: E501
14+ ),
15+ )
2716
17+ def test_abbreviated (self ):
2818 self .assertEqual (
2919 Manager ._table_str (abbreviated = True ),
3020 (
@@ -34,5 +24,23 @@ def test_str(self):
3424 ),
3525 )
3626
37- # We should also be able to print it directly.
27+ def test_m2m (self ):
28+ """
29+ Make sure M2M relationships appear in the Table string.
30+ """
31+
32+ self .assertEqual (
33+ Genre ._table_str (abbreviated = True ),
34+ (
35+ "class Genre(Table):\n "
36+ " id = Serial()\n "
37+ " name = Varchar()\n "
38+ " bands = M2M(GenreToBand)\n "
39+ ),
40+ )
41+
42+ def test_print (self ):
43+ """
44+ Make sure we can print it directly without any errors.
45+ """
3846 print (Manager )
0 commit comments