def test_basic_create(self): blueprint = Blueprint('users') blueprint.create() blueprint.increments('id') blueprint.string('email') statements = blueprint.to_sql(self.get_connection(), self.get_grammar()) self.assertEqual(1, len(statements)) self.assertEqual( 'CREATE TABLE "users" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "email" VARCHAR NOT NULL)', statements[0]) blueprint = Blueprint('users') blueprint.increments('id') blueprint.string('email') statements = blueprint.to_sql(self.get_connection(), self.get_grammar()) self.assertEqual(2, len(statements)) expected = [ 'ALTER TABLE "users" ADD COLUMN "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT', 'ALTER TABLE "users" ADD COLUMN "email" VARCHAR NOT NULL' ] self.assertEqual(expected, statements)
def test_adding_incrementing_id(self): blueprint = Blueprint('users') blueprint.increments('id') statements = blueprint.to_sql(self.get_connection(), self.get_grammar()) self.assertEqual(1, len(statements)) self.assertEqual( 'ALTER TABLE `users` ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY', statements[0] )
def test_adding_incrementing_id(self): blueprint = Blueprint('users') blueprint.increments('id') statements = blueprint.to_sql(self.get_connection(), self.get_grammar()) self.assertEqual(1, len(statements)) self.assertEqual( 'ALTER TABLE "users" ADD COLUMN "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT', statements[0])
def test_basic_create_with_prefix(self): blueprint = Blueprint('users') blueprint.create() blueprint.increments('id') blueprint.string('email') grammar = self.get_grammar() grammar.set_table_prefix('prefix_') conn = self.get_connection() conn.should_receive('get_config').and_return(None) statements = blueprint.to_sql(conn, grammar) self.assertEqual(1, len(statements)) self.assertEqual( 'CREATE TABLE `prefix_users` (' '`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, ' '`email` VARCHAR(255) NOT NULL)', statements[0] )
def test_charset_collation_create(self): blueprint = Blueprint('users') blueprint.create() blueprint.increments('id') blueprint.string('email') blueprint.charset = 'utf8mb4' blueprint.collation = 'utf8mb4_unicode_ci' conn = self.get_connection() statements = blueprint.to_sql(conn, self.get_grammar()) self.assertEqual(1, len(statements)) self.assertEqual( 'CREATE TABLE `users` (' '`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, ' '`email` VARCHAR(255) NOT NULL) ' 'DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci', statements[0] )
def test_basic_create(self): blueprint = Blueprint('users') blueprint.create() blueprint.increments('id') blueprint.string('email') conn = self.get_connection() conn.should_receive('get_config').once().with_args('charset').and_return('utf8') conn.should_receive('get_config').once().with_args('collation').and_return('utf8_unicode_ci') statements = blueprint.to_sql(conn, self.get_grammar()) self.assertEqual(1, len(statements)) self.assertEqual( 'CREATE TABLE `users` (' '`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, ' '`email` VARCHAR(255) NOT NULL) ' 'DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci', statements[0] ) blueprint = Blueprint('users') blueprint.create() blueprint.increments('id') blueprint.string('email') conn = self.get_connection() conn.should_receive('get_config').and_return(None) statements = blueprint.to_sql(conn, self.get_grammar()) self.assertEqual(1, len(statements)) self.assertEqual( 'CREATE TABLE `users` (' '`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, ' '`email` VARCHAR(255) NOT NULL)', statements[0] )