@@ -259,3 +259,55 @@ class DummyTable(self.Base):
259
259
260
260
with self .assertRaises (sa .exc .CompileError ):
261
261
self .Base .metadata .create_all (bind = self .engine )
262
+
263
+ def test_column_server_default_text_func (self ):
264
+ class DummyTable (self .Base ):
265
+ __tablename__ = 't'
266
+ pk = sa .Column (sa .String , primary_key = True )
267
+ a = sa .Column (sa .DateTime , server_default = sa .text ("now()" ))
268
+
269
+ self .Base .metadata .create_all (bind = self .engine )
270
+ fake_cursor .execute .assert_called_with (
271
+ ('\n CREATE TABLE t (\n \t '
272
+ 'pk STRING NOT NULL, \n \t '
273
+ 'a TIMESTAMP DEFAULT now(), \n \t '
274
+ 'PRIMARY KEY (pk)\n )\n \n ' ), ())
275
+
276
+ def test_column_server_default_string (self ):
277
+ class DummyTable (self .Base ):
278
+ __tablename__ = 't'
279
+ pk = sa .Column (sa .String , primary_key = True )
280
+ a = sa .Column (sa .String , server_default = "Zaphod" )
281
+
282
+ self .Base .metadata .create_all (bind = self .engine )
283
+ fake_cursor .execute .assert_called_with (
284
+ ('\n CREATE TABLE t (\n \t '
285
+ 'pk STRING NOT NULL, \n \t '
286
+ 'a STRING DEFAULT \' Zaphod\' , \n \t '
287
+ 'PRIMARY KEY (pk)\n )\n \n ' ), ())
288
+
289
+ def test_column_server_default_func (self ):
290
+ class DummyTable (self .Base ):
291
+ __tablename__ = 't'
292
+ pk = sa .Column (sa .String , primary_key = True )
293
+ a = sa .Column (sa .DateTime , server_default = sa .func .now ())
294
+
295
+ self .Base .metadata .create_all (bind = self .engine )
296
+ fake_cursor .execute .assert_called_with (
297
+ ('\n CREATE TABLE t (\n \t '
298
+ 'pk STRING NOT NULL, \n \t '
299
+ 'a TIMESTAMP DEFAULT now(), \n \t '
300
+ 'PRIMARY KEY (pk)\n )\n \n ' ), ())
301
+
302
+ def test_column_server_default_text_constant (self ):
303
+ class DummyTable (self .Base ):
304
+ __tablename__ = 't'
305
+ pk = sa .Column (sa .String , primary_key = True )
306
+ answer = sa .Column (sa .Integer , server_default = sa .text ("42" ))
307
+
308
+ self .Base .metadata .create_all (bind = self .engine )
309
+ fake_cursor .execute .assert_called_with (
310
+ ('\n CREATE TABLE t (\n \t '
311
+ 'pk STRING NOT NULL, \n \t '
312
+ 'answer INT DEFAULT 42, \n \t '
313
+ 'PRIMARY KEY (pk)\n )\n \n ' ), ())
0 commit comments