MCPcopy Index your code
hub / github.com/clips/pattern / test_create_table

Method test_create_table

test/test_db.py:298–338  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

296 print "pattern.db.Database(type=%s)" % self.type.upper()
297
298 def test_create_table(self):
299 # Assert Database.create() new table.
300 v = self.db.create("products", fields=[
301 db.primary_key("pid"),
302 db.field("name", db.STRING, index=True, optional=False),
303 db.field("price", db.FLOAT)
304 ])
305 # Assert that the last query executed is stored.
306 if self.db.type == db.SQLITE:
307 self.assertEqual(self.db.query, "pragma table_info(`products`);")
308 if self.db.type == db.MYSQL:
309 self.assertEqual(self.db.query, "show columns from `products`;")
310 # Assert new Table exists in Database.tables.
311 self.assertTrue(isinstance(v, db.Table))
312 self.assertTrue(len(self.db) == 1)
313 self.assertTrue(v.pk == "pid")
314 self.assertTrue(v.fields == ["pid", "name", "price"])
315 self.assertTrue(self.db[v.name] == v)
316 self.assertTrue(self.db.tables[v.name] == v)
317 self.assertTrue(getattr(self.db, v.name) == v)
318 # Assert Database._field_SQL subroutine for Database.create().
319 for field, sql1, sql2 in (
320 (db.primary_key("pid"),
321 ("`pid` integer not null primary key auto_increment", None),
322 ("`pid` integer not null primary key autoincrement", None)),
323 (db.field("name", db.STRING, index=True, optional=False),
324 ("`name` varchar(100) not null", "create index `products_name` on `products` (`name`);"),
325 ("`name` varchar(100) not null", "create index `products_name` on `products` (`name`);")),
326 (db.field("price", db.INTEGER),
327 ("`price` integer null", None),
328 ("`price` integer null", None))):
329 if self.db.type == db.MYSQL:
330 self.assertEqual(self.db._field_SQL(self.db["products"].name, field), sql1)
331 if self.db.type == db.SQLITE:
332 self.assertEqual(self.db._field_SQL(self.db["products"].name, field), sql2)
333 # Assert TableError if table already exists.
334 self.assertRaises(db.TableError, self.db.create, "products")
335 # Assert remove table.
336 self.db.drop("products")
337 self.assertTrue(len(self.db) == 0)
338 print "pattern.db.Database.create()"
339
340class TestCreateMySQLDatabase(unittest.TestCase):
341 def runTest(self):

Callers

nothing calls this directly

Calls 4

lenFunction · 0.85
createMethod · 0.80
_field_SQLMethod · 0.80
dropMethod · 0.80

Tested by

no test coverage detected