コード例 #1
0
    def test_timestamp_defaults(self, spec, kw, expected):
        """Exercise funky TIMESTAMP default syntax when used in columns."""

        c = Column("t", *spec, **kw)
        Table("t", MetaData(), c)
        self.assert_compile(schema.CreateColumn(c), "t %s" % expected)
コード例 #2
0
    def test_timestamp_defaults(self):
        """Exercise funky TIMESTAMP default syntax when used in columns."""

        columns = [
            ([TIMESTAMP], {}, "TIMESTAMP NULL"),
            ([mysql.MSTimeStamp], {}, "TIMESTAMP NULL"),
            (
                [
                    mysql.MSTimeStamp(),
                    DefaultClause(sql.text("CURRENT_TIMESTAMP")),
                ],
                {},
                "TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP",
            ),
            (
                [
                    mysql.MSTimeStamp,
                    DefaultClause(sql.text("CURRENT_TIMESTAMP")),
                ],
                {
                    "nullable": False
                },
                "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP",
            ),
            (
                [
                    mysql.MSTimeStamp,
                    DefaultClause(sql.text("'1999-09-09 09:09:09'")),
                ],
                {
                    "nullable": False
                },
                "TIMESTAMP NOT NULL DEFAULT '1999-09-09 09:09:09'",
            ),
            (
                [
                    mysql.MSTimeStamp(),
                    DefaultClause(sql.text("'1999-09-09 09:09:09'")),
                ],
                {},
                "TIMESTAMP NULL DEFAULT '1999-09-09 09:09:09'",
            ),
            (
                [
                    mysql.MSTimeStamp(),
                    DefaultClause(
                        sql.text("'1999-09-09 09:09:09' "
                                 "ON UPDATE CURRENT_TIMESTAMP")),
                ],
                {},
                "TIMESTAMP NULL DEFAULT '1999-09-09 09:09:09' "
                "ON UPDATE CURRENT_TIMESTAMP",
            ),
            (
                [
                    mysql.MSTimeStamp,
                    DefaultClause(
                        sql.text("'1999-09-09 09:09:09' "
                                 "ON UPDATE CURRENT_TIMESTAMP")),
                ],
                {
                    "nullable": False
                },
                "TIMESTAMP NOT NULL DEFAULT '1999-09-09 09:09:09' "
                "ON UPDATE CURRENT_TIMESTAMP",
            ),
            (
                [
                    mysql.MSTimeStamp(),
                    DefaultClause(
                        sql.text("CURRENT_TIMESTAMP "
                                 "ON UPDATE CURRENT_TIMESTAMP")),
                ],
                {},
                "TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP "
                "ON UPDATE CURRENT_TIMESTAMP",
            ),
            (
                [
                    mysql.MSTimeStamp,
                    DefaultClause(
                        sql.text("CURRENT_TIMESTAMP "
                                 "ON UPDATE CURRENT_TIMESTAMP")),
                ],
                {
                    "nullable": False
                },
                "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP "
                "ON UPDATE CURRENT_TIMESTAMP",
            ),
        ]
        for spec, kw, expected in columns:
            c = Column("t", *spec, **kw)
            Table("t", MetaData(), c)
            self.assert_compile(schema.CreateColumn(c), "t %s" % expected)