def test__create_statement(self): table = MySQLTable(name="my_table") table.columns.append( MySQLColumn( name="id", data_type="integer", length=11, attributes=["NOT NULL", "AUTO_INCREMENT"], table=table ) ) table.columns.append( MySQLColumn(name="name", data_type="varchar", length=255, attributes=["DEFAULT NULL"], table=table) ) table.columns.append(MySQLColumn(name="description", data_type="blob", table=table)) table.columns.append(MySQLColumn(name="group_id", data_type="integer", length=11, table=table)) expect = """\ CREATE TABLE `my_table` ( `id` integer(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `description` blob, `group_id` integer(11), PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;""" expect_drop = """\ DROP TABLE IF EXISTS `my_table`; CREATE TABLE `my_table` ( `id` integer(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `description` blob, `group_id` integer(11), PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;""" self.assertEqual(table.create_statement(), expect) self.assertEqual(table.create_statement(drop=True), expect_drop)
def __init__(self, name, column_names, data): """Constructor """ self.name = name self.column_names = column_names self.data = data self.columns = [] MySQLTable.__init__(self, name)
def test__insert_statement(self): table = MySQLTable(name="my_table") data = [(None, 1, "a"), (None, 2, "b"), (None, 3, "c")] expect = """\ INSERT INTO `my_table` VALUES (NULL, 1, 'a'), (NULL, 2, 'b'), (NULL, 3, 'c') ;""" expect_lock = """\ LOCK TABLE `my_table` WRITE; INSERT INTO `my_table` VALUES (NULL, 1, 'a'), (NULL, 2, 'b'), (NULL, 3, 'c') ; UNLOCK TABLES;""" self.assertEqual(table.insert_statement(data), expect) self.assertEqual(table.insert_statement(data, lock=True), expect_lock) return
def test__documentation(self): # W0511 Used when a warning note as FIXME or XXX is detected. # pylint: disable=W0511 table = MySQLTable(name="my_table") expect = """my_table """ self.assertEqual(table.documentation(), expect) table.columns.append(MySQLColumn(name="id", data_type="integer", table=table)) table.columns.append(MySQLColumn(name="name", data_type="varchar(255)", table=table)) table.columns.append(MySQLColumn(name="description", data_type="blob", table=table)) table.columns.append(MySQLColumn(name="group_id", data_type="integer", table=table)) expect = """my_table name varchar(255) # FIXME description blob # FIXME group_id integer # FIXME""" # 234567890123456789012345678901234567890 self.assertEqual(table.documentation(), expect) return