def test_validatetable_bad_missing(self): """ Tests that validatetable method returns False when supplied a table not in the database """ testtable = Table.TableConstructor("notatable", columns=[ objects.Column("notaname", datatype="REAL"), objects.Column("notavalue", datatype="BLOB") ]) self.assertFalse(self.connection.validatetable(testtable))
def test_validatetable_bad_different(self): """ Tests that validatetable method returns False when supplied with a table that is in the database, but whose structure is different than implemented. """ testtable = Table.TableConstructor("testtable", columns=[ objects.Column("notaname", datatype="REAL"), objects.Column("notavalue", datatype="BLOB") ]) self.assertFalse(self.connection.validatetable(testtable))
def test_tableconstructor_addcolumn(self): """ Tests various values for TC.addcolumn() """ for value,name,result in [ ("bool BOOLEAN NOT NULL", "bool", objects.Column("bool",table = self.tablecon, datatype = "BOOLEAN", constraints = [objects.Constraint("NOT NULL"),])), ]: with self.subTest(value = value, name = name, result = result): self.tablecon.addcolumn(value) self.assertTrue(name in self.tablecon.columns) self.assertEqual(self.tablecon.columns[name],result)
def test_addcolumn(self): """ Tests the addcolumn functionality of AdvancedTable. Test based on TableConstructorCase.addcolumn. """ table = self.connection.getadvancedtable("testtable") for value,name,result in [ ("bool BOOLEAN NOT NULL DEFAULT 1", "bool", objects.Column("bool",table = table, datatype = "BOOLEAN", constraints = [objects.Constraint("NOT NULL"),objects.Constraint("DEFAULT",info = "1")])), ]: with self.subTest(table = table, value = value, name = name, result = result): table.addcolumn(value) self.assertTrue(name in table.columns) self.assertEqual(table.columns[name],result) newtable = self.connection.getadvancedtable("testtable") self.assertTrue(name in newtable.columns) self.assertEqual(newtable.columns[name],result)
def test_basic_parsecolumn(self): """ A basic test for Parser.parse_column """ table = sql.TableConstructor("testtable", columns = [objects.Column("blah"),]).to_table() for (definition,column) in [("name TEXT",objects.Column("name",datatype="TEXT")),]: with self.subTest(definition = definition, column = column): self.assertEqual(Parser.parse_column(definition,table),column)