def test_begin_commit_per_rev_ddl(self):
     with capture_context_buffer(transaction_per_migration=True) as buf:
         command.upgrade(self.cfg, self.c, sql=True)
     assert re.match((r"^BEGIN;\s+CREATE TABLE.*%s.*?COMMIT;.*" % self.a) +
                     (r"BEGIN;.*?%s.*?COMMIT;.*" % self.b) +
                     (r"BEGIN;.*?%s.*?COMMIT;.*$" % self.c), buf.getvalue(),
                     re.S)
Пример #2
0
 def test_offline_distinct_enum_create(self):
     self._distinct_enum_script()
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, self.rid, sql=True)
     assert "CREATE TYPE pgenum AS ENUM "\
         "('one', 'two', 'three')" in buf.getvalue()
     assert "CREATE TABLE sometable (\n    data pgenum\n)" in buf.getvalue()
Пример #3
0
 def test_offline_distinct_enum_create(self):
     self._distinct_enum_script()
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, self.rid, sql=True)
     assert ("CREATE TYPE pgenum AS ENUM "
             "('one', 'two', 'three')" in buf.getvalue())
     assert "CREATE TABLE sometable (\n    data pgenum\n)" in buf.getvalue()
Пример #4
0
 def test_sql_stamp_revision_as_kw(self):
     with capture_context_buffer() as buf:
         command.stamp(self.cfg, revision="head", sql=True)
     assert (
         "INSERT INTO alembic_version (version_num) VALUES ('%s')" % self.c
         in buf.getvalue()
     )
Пример #5
0
 def test_offline_inline_enum_drop(self):
     self._inline_enum_script()
     with capture_context_buffer() as buf:
         command.downgrade(self.cfg, "%s:base" % self.rid, sql=True)
     assert "DROP TABLE sometable" in buf.getvalue()
     # no drop since we didn't emit events
     assert "DROP TYPE pgenum" not in buf.getvalue()
Пример #6
0
 def test_offline_inline_enum_drop(self):
     self._inline_enum_script()
     with capture_context_buffer() as buf:
         command.downgrade(self.cfg, "%s:base" % self.rid, sql=True)
     assert "DROP TABLE sometable" in buf.getvalue()
     # no drop since we didn't emit events
     assert "DROP TYPE pgenum" not in buf.getvalue()
Пример #7
0
    def test_sql_mode_parameters(self):
        env = self._fixture()

        a_rev = "arev"
        env.script.generate_revision(a_rev, "revision a", refresh=True)
        write_script(
            env.script,
            a_rev,
            """\
"Rev A"
revision = '{}'
down_revision = None

from alembic import op

def upgrade():
    op.execute('''
        do some SQL thing with a % percent sign %
    ''')

""".format(a_rev),
        )
        with capture_context_buffer(transactional_ddl=True) as buf:
            command.upgrade(self.cfg, "arev", sql=True)
        assert "do some SQL thing with a % percent sign %" in buf.getvalue()
Пример #8
0
 def test_sql_stamp_from_partial_rev(self):
     with capture_context_buffer() as buf:
         command.stamp(self.cfg, "%s:head" % self.a[0:7], sql=True)
     assert ("UPDATE alembic_version "
             "SET version_num='%s' "
             "WHERE alembic_version.version_num = '%s';" %
             (self.c, self.a)) in buf.getvalue()
Пример #9
0
 def test_encode(self):
     with capture_context_buffer(
         bytes_io=True,
         output_encoding='utf-8'
     ) as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert compat.u("« S’il vous plaît…").encode("utf-8") in buf.getvalue()
Пример #10
0
 def test_stamp_argparser_single_rev(self):
     cmd = config.CommandLine()
     options = cmd.parser.parse_args(["stamp", self.c, "--sql"])
     with capture_context_buffer() as buf:
         cmd.run_cmd(self.cfg, options)
     assert ("INSERT INTO alembic_version (version_num) VALUES ('%s')" %
             self.c in buf.getvalue())
Пример #11
0
 def test_encode(self):
     with capture_context_buffer(
         bytes_io=True,
         output_encoding='utf-8'
     ) as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert compat.u("« S’il vous plaît…").encode("utf-8") in buf.getvalue()
Пример #12
0
 def test_version_from_middle_update(self):
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, "%s:%s" % (self.b, self.c), sql=True)
     assert "CREATE TABLE alembic_version" not in buf.getvalue()
     assert "UPDATE alembic_version" in buf.getvalue()
     assert "CREATE STEP 1" not in buf.getvalue()
     assert "CREATE STEP 2" not in buf.getvalue()
     assert "CREATE STEP 3" in buf.getvalue()
Пример #13
0
 def test_sql_stamp_from_partial_rev(self):
     with capture_context_buffer() as buf:
         command.stamp(self.cfg, "%s:head" % self.a[0:7], sql=True)
     assert (
         "UPDATE alembic_version "
         "SET version_num='%s' "
         "WHERE alembic_version.version_num = '%s';" % (self.c, self.a)
     ) in buf.getvalue()
Пример #14
0
 def test_version_from_middle_update(self):
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, "%s:%s" % (self.b, self.c), sql=True)
     assert "CREATE TABLE alembic_version" not in buf.getvalue()
     assert "UPDATE alembic_version" in buf.getvalue()
     assert "CREATE STEP 1" not in buf.getvalue()
     assert "CREATE STEP 2" not in buf.getvalue()
     assert "CREATE STEP 3" in buf.getvalue()
Пример #15
0
 def test_version_from_none_insert(self):
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert "CREATE TABLE alembic_version" in buf.getvalue()
     assert "INSERT INTO alembic_version" in buf.getvalue()
     assert "CREATE STEP 1" in buf.getvalue()
     assert "CREATE STEP 2" not in buf.getvalue()
     assert "CREATE STEP 3" not in buf.getvalue()
Пример #16
0
    def test_begin_commit(self):
        with capture_context_buffer(transactional_ddl=True) as buf:
            command.upgrade(self.cfg, self.a, sql=True)
        assert "BEGIN TRANSACTION;" in buf.getvalue()

        # ensure ends in COMMIT; GO
        eq_([x for x in buf.getvalue().splitlines() if x][-2:],
            ['COMMIT;', 'GO'])
Пример #17
0
 def test_base_to_head_sql(self):
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, "base:head", sql=True)
     assert "CREATE TABLE alembic_version" in buf.getvalue()
     assert "UPDATE alembic_version" in buf.getvalue()
     assert "CREATE STEP 1" in buf.getvalue()
     assert "CREATE STEP 2" in buf.getvalue()
     assert "CREATE STEP 3" in buf.getvalue()
Пример #18
0
 def test_base_to_head_sql(self):
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, "base:head", sql=True)
     assert "CREATE TABLE alembic_version" in buf.getvalue()
     assert "UPDATE alembic_version" in buf.getvalue()
     assert "CREATE STEP 1" in buf.getvalue()
     assert "CREATE STEP 2" in buf.getvalue()
     assert "CREATE STEP 3" in buf.getvalue()
 def test_begin_commit_transactional_ddl(self):
     with capture_context_buffer(transactional_ddl=True) as buf:
         command.upgrade(self.cfg, self.c, sql=True)
     assert re.match(
         (r"^BEGIN;\s+CREATE TABLE.*?%s.*" % self.a) + (r".*%s" % self.b) + (r".*%s.*?COMMIT;.*$" % self.c),
         buf.getvalue(),
         re.S,
     )
Пример #20
0
 def test_version_from_none_insert(self):
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert "CREATE TABLE alembic_version" in buf.getvalue()
     assert "INSERT INTO alembic_version" in buf.getvalue()
     assert "CREATE STEP 1" in buf.getvalue()
     assert "CREATE STEP 2" not in buf.getvalue()
     assert "CREATE STEP 3" not in buf.getvalue()
Пример #21
0
 def test_version_to_middle(self):
     with capture_context_buffer() as buf:
         command.downgrade(self.cfg, "%s:%s" % (self.c, self.a), sql=True)
     assert "CREATE TABLE alembic_version" not in buf.getvalue()
     assert "INSERT INTO alembic_version" not in buf.getvalue()
     assert "DROP TABLE alembic_version" not in buf.getvalue()
     assert "DROP STEP 3" in buf.getvalue()
     assert "DROP STEP 2" in buf.getvalue()
     assert "DROP STEP 1" not in buf.getvalue()
Пример #22
0
    def test_running_comments_not_in_sql(self):

        message = "this is a very long \nand multiline\nmessage"

        d = command.revision(self.cfg, message=message)
        with capture_context_buffer(transactional_ddl=True) as buf:
            command.upgrade(self.cfg, "%s:%s" % (a, d.revision), sql=True)

        assert not re.match(r".*-- .*and multiline", buf.getvalue(), re.S | re.M)
Пример #23
0
 def test_version_to_middle(self):
     with capture_context_buffer() as buf:
         command.downgrade(self.cfg, "%s:%s" % (self.c, self.a), sql=True)
     assert "CREATE TABLE alembic_version" not in buf.getvalue()
     assert "INSERT INTO alembic_version" not in buf.getvalue()
     assert "DROP TABLE alembic_version" not in buf.getvalue()
     assert "DROP STEP 3" in buf.getvalue()
     assert "DROP STEP 2" in buf.getvalue()
     assert "DROP STEP 1" not in buf.getvalue()
Пример #24
0
    def test_begin_commit(self):
        with capture_context_buffer(transactional_ddl=True) as buf:
            command.upgrade(self.cfg, self.a, sql=True)
        assert "BEGIN TRANSACTION;" in buf.getvalue()

        # ensure ends in COMMIT; GO
        eq_(
            [x for x in buf.getvalue().splitlines() if x][-2:],
            ['COMMIT;', 'GO']
        )
Пример #25
0
    def test_sql_stamp_multi_rev_from_multi_base_nonsensical(self):
        with capture_context_buffer() as buf:
            command.stamp(
                self.cfg,
                ["base:%s" % self.a, "base:%s" % self.e, "base:%s" % self.f],
                sql=True,
            )

        # TODO: this shouldn't be possible, because e/f require b as a
        # dependency
        self._assert_sql(buf.getvalue(), None, {self.a, self.e, self.f})
Пример #26
0
 def test_stamp_argparser_multiple_rev(self):
     cmd = config.CommandLine()
     options = cmd.parser.parse_args(["stamp", self.b, self.c, "--sql"])
     with capture_context_buffer() as buf:
         cmd.run_cmd(self.cfg, options)
     # TODO: this is still wrong, as this stamp command is putting
     # conflicting heads into the table.   The test here is only to test
     # that the revisions are passed as a list.
     assert ("INSERT INTO alembic_version (version_num) VALUES ('%s')" %
             self.b in buf.getvalue())
     assert ("INSERT INTO alembic_version (version_num) VALUES ('%s')" %
             self.c in buf.getvalue())
Пример #27
0
    def test_sql_stamp_multi_rev_from_multi_start(self):
        with capture_context_buffer() as buf:
            command.stamp(
                self.cfg,
                [
                    "%s:%s" % (self.b, self.c),
                    "%s:%s" % (self.b, self.e),
                    "%s:%s" % (self.b, self.f),
                ],
                sql=True,
            )

        self._assert_sql(buf.getvalue(), self.b, {self.c, self.e, self.f})
Пример #28
0
 def test_begin_commit_nontransactional_ddl(self):
     with capture_context_buffer(transactional_ddl=False) as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert re.match(r"^CREATE TABLE.*?\n+$", buf.getvalue(), re.S)
     assert "COMMIT;" not in buf.getvalue()
Пример #29
0
    def test_sql_stamp_heads_symbolic(self):
        with capture_context_buffer() as buf:
            command.stamp(self.cfg, ["%s:heads" % self.b], sql=True)

        self._assert_sql(buf.getvalue(), self.b, {self.c, self.e, self.f})
Пример #30
0
 def test_batch_separator_default(self):
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert "/" in buf.getvalue()
     assert ";" not in buf.getvalue()
Пример #31
0
    def test_sql_stamp_single_head(self):
        with capture_context_buffer() as buf:
            command.stamp(self.cfg, ["%s@head" % self.c1], sql=True)

        self._assert_sql(buf.getvalue(), None, {self.c1})
Пример #32
0
 def test_offline_distinct_enum_drop(self):
     self._distinct_enum_script()
     with capture_context_buffer() as buf:
         command.downgrade(self.cfg, "%s:base" % self.rid, sql=True)
     assert "DROP TABLE sometable" in buf.getvalue()
     assert "DROP TYPE pgenum" in buf.getvalue()
Пример #33
0
 def test_begin_comit(self):
     with capture_context_buffer(transactional_ddl=True) as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert "SET TRANSACTION READ WRITE\n\n/" in buf.getvalue()
     assert "COMMIT\n\n/" in buf.getvalue()
Пример #34
0
 def test_offline_distinct_enum_drop(self):
     self._distinct_enum_script()
     with capture_context_buffer() as buf:
         command.downgrade(self.cfg, "%s:base" % self.rid, sql=True)
     assert "DROP TABLE sometable" in buf.getvalue()
     assert "DROP TYPE pgenum" in buf.getvalue()
Пример #35
0
 def test_batch_separator_default(self):
     with capture_context_buffer() as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert "/" in buf.getvalue()
     assert ";" not in buf.getvalue()
Пример #36
0
 def test_batch_separator_custom(self):
     with capture_context_buffer(oracle_batch_separator="BYE") as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert "BYE" in buf.getvalue()
Пример #37
0
 def test_begin_comit(self):
     with capture_context_buffer(transactional_ddl=True) as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert "SET TRANSACTION READ WRITE\n\n/" in buf.getvalue()
     assert "COMMIT\n\n/" in buf.getvalue()
Пример #38
0
    def test_sql_stamp_heads(self):
        with capture_context_buffer() as buf:
            command.stamp(self.cfg, ["heads"], sql=True)

        self._assert_sql(buf.getvalue(), None, {self.c, self.e, self.f})
Пример #39
0
 def test_batch_separator_custom(self):
     with capture_context_buffer(oracle_batch_separator="BYE") as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert "BYE" in buf.getvalue()
Пример #40
0
 def test_begin_commit_nontransactional_ddl(self):
     with capture_context_buffer(transactional_ddl=False) as buf:
         command.upgrade(self.cfg, self.a, sql=True)
     assert re.match(r"^CREATE TABLE.*?\n+$", buf.getvalue(), re.S)
     assert "COMMIT;" not in buf.getvalue()