23
23
Index ,
24
24
MetaData ,
25
25
Boolean ,
26
- BIGINT ,
26
+ BIGINT , select ,
27
27
)
28
28
from sqlalchemy .orm import Session , DeclarativeBase , Mapped , mapped_column
29
29
from sqlalchemy .types import REAL
30
- from sqlalchemy .testing import eq_
30
+ from sqlalchemy .testing import eq_ , is_true
31
31
from sqlalchemy .testing .plugin .plugin_base import fixtures
32
32
33
33
@@ -50,6 +50,12 @@ def define_tables(cls, metadata):
50
50
numbers .c .prime .desc (),
51
51
spanner_storing = [numbers .c .alternative_name ],
52
52
)
53
+ Table (
54
+ "users" ,
55
+ metadata ,
56
+ Column ("ID" , Integer , primary_key = True ),
57
+ Column ("name" , String (20 )),
58
+ )
53
59
54
60
def test_hello_world (self , connection ):
55
61
greeting = connection .execute (text ("select 'Hello World'" ))
@@ -69,7 +75,7 @@ def test_reflect(self, connection):
69
75
engine = connection .engine
70
76
meta : MetaData = MetaData ()
71
77
meta .reflect (bind = engine )
72
- eq_ (1 , len (meta .tables ))
78
+ eq_ (2 , len (meta .tables ))
73
79
table = meta .tables ["numbers" ]
74
80
eq_ (5 , len (table .columns ))
75
81
eq_ ("number" , table .columns [0 ].name )
@@ -127,10 +133,25 @@ class Number(Base):
127
133
prime : Mapped [bool ] = mapped_column (Boolean )
128
134
ln : Mapped [float ] = mapped_column (REAL )
129
135
136
+ class User (Base ):
137
+ __tablename__ = "users"
138
+ ID : Mapped [int ] = mapped_column (primary_key = True )
139
+ name : Mapped [str ] = mapped_column (String (20 ))
140
+
130
141
engine = connection .engine
131
142
with Session (engine ) as session :
132
143
number = Number (
133
144
number = 1 , name = "One" , alternative_name = "Uno" , prime = False , ln = 0.0
134
145
)
135
146
session .add (number )
136
147
session .commit ()
148
+
149
+ with Session (engine ) as session :
150
+ user = User (name = "Test" )
151
+ session .add (user )
152
+ session .commit ()
153
+
154
+ statement = select (User ).filter_by (name = "Test" )
155
+ users = session .scalars (statement ).all ()
156
+ eq_ (1 , len (users ))
157
+ is_true (users [0 ].ID > 0 )
0 commit comments