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" SERIAL PRIMARY KEY NOT NULL, "email" VARCHAR(255) 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(1, len(statements))
        expected = [
            'ALTER TABLE "users" ADD COLUMN "id" SERIAL PRIMARY KEY NOT NULL, '
            'ADD COLUMN "email" VARCHAR(255) NOT NULL'
        ]
        self.assertEqual(expected[0], statements[0])
Example #2
0
    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)
Example #3
0
    def test_adding_column_after_another(self):
        blueprint = Blueprint('users')
        blueprint.string('name').after('foo')

        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE `users` ADD `name` VARCHAR(255) NOT NULL AFTER `foo`',
            statements[0])
Example #4
0
    def test_adding_column_after_another(self):
        blueprint = Blueprint('users')
        blueprint.string('name').after('foo')
        
        statements = blueprint.to_sql(self.get_connection(), self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE `users` ADD `name` VARCHAR(255) NOT NULL AFTER `foo`',
            statements[0]
        )
Example #5
0
    def test_adding_column_after_another(self):
        blueprint = Blueprint("users")
        blueprint.string("name").after("foo")

        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            "ALTER TABLE `users` ADD `name` VARCHAR(255) NOT NULL AFTER `foo`",
            statements[0],
        )
Example #6
0
    def test_adding_foreign_key(self):
        blueprint = Blueprint('users')
        blueprint.create()
        blueprint.string('foo').primary()
        blueprint.string('order_id')
        blueprint.foreign('order_id').references('id').on('orders')
        statements = blueprint.to_sql(self.get_connection(), self.get_grammar())

        self.assertEqual(1, len(statements))
        expected = 'CREATE TABLE "users" ("foo" VARCHAR NOT NULL, "order_id" VARCHAR NOT NULL, ' \
                   'FOREIGN KEY("order_id") REFERENCES "orders"("id"), PRIMARY KEY ("foo"))'
        self.assertEqual(expected, statements[0])
Example #7
0
    def test_adding_foreign_key(self):
        blueprint = Blueprint('users')
        blueprint.create()
        blueprint.string('foo').primary()
        blueprint.string('order_id')
        blueprint.foreign('order_id').references('id').on('orders')
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        expected = 'CREATE TABLE "users" ("foo" VARCHAR NOT NULL, "order_id" VARCHAR NOT NULL, ' \
                   'FOREIGN KEY("order_id") REFERENCES "orders"("id"), PRIMARY KEY ("foo"))'
        self.assertEqual(expected, statements[0])
    def test_adding_foreign_key(self):
        blueprint = Blueprint('users')
        blueprint.create()
        blueprint.string('foo').primary()
        blueprint.string('order_id')
        blueprint.foreign('order_id').references('id').on('orders')
        statements = blueprint.to_sql(self.get_connection(), self.get_grammar())

        self.assertEqual(3, len(statements))
        expected = [
            'CREATE TABLE "users" ("foo" VARCHAR(255) NOT NULL, "order_id" VARCHAR(255) NOT NULL)',
            'ALTER TABLE "users" ADD CONSTRAINT users_order_id_foreign'
            ' FOREIGN KEY ("order_id") REFERENCES "orders" ("id")',
            'ALTER TABLE "users" ADD PRIMARY KEY ("foo")'
        ]
        self.assertEqual(expected, statements)
    def test_adding_foreign_key(self):
        blueprint = Blueprint("users")
        blueprint.create()
        blueprint.string("foo").primary()
        blueprint.string("order_id")
        blueprint.foreign("order_id").references("id").on("orders")
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(3, len(statements))
        expected = [
            'CREATE TABLE "users" ("foo" VARCHAR(255) NOT NULL, "order_id" VARCHAR(255) NOT NULL)',
            'ALTER TABLE "users" ADD CONSTRAINT users_order_id_foreign'
            ' FOREIGN KEY ("order_id") REFERENCES "orders" ("id")',
            'ALTER TABLE "users" ADD PRIMARY KEY ("foo")',
        ]
        self.assertEqual(expected, statements)
Example #10
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])
Example #11
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])
Example #12
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]
        )
Example #13
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]
        )
Example #14
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],
        )
Example #15
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],
        )
Example #16
0
    def test_adding_string(self):
        blueprint = Blueprint('users')
        blueprint.string('foo')
        statements = blueprint.to_sql(self.get_connection(), self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE "users" ADD COLUMN "foo" VARCHAR NOT NULL',
            statements[0]
        )

        blueprint = Blueprint('users')
        blueprint.string('foo', 100)
        statements = blueprint.to_sql(self.get_connection(), self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE "users" ADD COLUMN "foo" VARCHAR NOT NULL',
            statements[0]
        )

        blueprint = Blueprint('users')
        blueprint.string('foo', 100).nullable().default('bar')
        statements = blueprint.to_sql(self.get_connection(), self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE "users" ADD COLUMN "foo" VARCHAR NULL DEFAULT \'bar\'',
            statements[0]
        )
Example #17
0
    def test_adding_string(self):
        blueprint = Blueprint('users')
        blueprint.string('foo')
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE "users" ADD COLUMN "foo" VARCHAR /*string(%s,255)*/ NOT NULL',
            statements[0])

        blueprint = Blueprint('users')
        blueprint.string('foo', 100)
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE "users" ADD COLUMN "foo" VARCHAR /*string(%s,100)*/ NOT NULL',
            statements[0])

        blueprint = Blueprint('users')
        blueprint.string('foo', 100).nullable().default('bar')
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE "users" ADD COLUMN "foo" VARCHAR /*string(%s,100)*/ NULL DEFAULT \'bar\'',
            statements[0])
Example #18
0
    def test_adding_string(self):
        blueprint = Blueprint('users')
        blueprint.string('foo')
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual('ALTER TABLE `users` ADD `foo` VARCHAR(255) NOT NULL',
                         statements[0])

        blueprint = Blueprint('users')
        blueprint.string('foo', 100)
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual('ALTER TABLE `users` ADD `foo` VARCHAR(100) NOT NULL',
                         statements[0])

        blueprint = Blueprint('users')
        blueprint.string('foo', 100).nullable().default('bar')
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE `users` ADD `foo` VARCHAR(100) NULL DEFAULT \'bar\'',
            statements[0])
    def test_adding_string(self):
        blueprint = Blueprint("users")
        blueprint.string("foo")
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE "users" ADD COLUMN "foo" VARCHAR(255) NOT NULL',
            statements[0])

        blueprint = Blueprint("users")
        blueprint.string("foo", 100)
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE "users" ADD COLUMN "foo" VARCHAR(100) NOT NULL',
            statements[0])

        blueprint = Blueprint("users")
        blueprint.string("foo", 100).nullable().default("bar")
        statements = blueprint.to_sql(self.get_connection(),
                                      self.get_grammar())

        self.assertEqual(1, len(statements))
        self.assertEqual(
            'ALTER TABLE "users" ADD COLUMN "foo" VARCHAR(100) NULL DEFAULT \'bar\'',
            statements[0],
        )
Example #20
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],
        )
Example #21
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]
        )
    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" SERIAL PRIMARY KEY NOT NULL, "email" VARCHAR(255) 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(1, len(statements))
        expected = [
            'ALTER TABLE "users" ADD COLUMN "id" SERIAL PRIMARY KEY NOT NULL, '
            'ADD COLUMN "email" VARCHAR(255) NOT NULL'
        ]
        self.assertEqual(expected[0], statements[0])
Example #23
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])
Example #24
0
    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)