Exemplo n.º 1
0
def test_new_duplicate(sample_config):
    initialize(sample_config)
    args = cli.parser.parse_args(["newdb", "new", "First script"])
    cli.dispatch(args, sample_config)

    with pytest.raises(exceptions.ScriptAlreadyExists):
        cli.dispatch(args, sample_config)
Exemplo n.º 2
0
    def test_initial_upgrade(self):
        args = cli.parser.parse_args(["test", "upgrade"])
        cli.dispatch(args, self.cfg)

        self.assertEqual(
            list(self.db0.migrations),
            ["INITIAL", "aaaa_first", "bbbb_second", "cccc_third"],
        )
Exemplo n.º 3
0
def test_new_on_repo_init(sample_config, migrant_backend):
    backend = MockedBackend([])
    migrant_backend.set(backend)

    args = cli.parser.parse_args(["newdb", "init"])
    cli.dispatch(args, sample_config)

    assert backend.inits == 1
Exemplo n.º 4
0
    def test_status_clean(self):
        self.db0.migrations.extend(["aaaa_first", "bbbb_second", "cccc_third"])

        args = cli.parser.parse_args(["test", "status"])
        cli.dispatch(args, self.cfg)

        log = self.logstream.getvalue()
        self.assertIn("Up-to-date", log)
Exemplo n.º 5
0
    def test_status_dirty(self):
        self.db0.migrations.extend(["aaaa_first"])

        args = cli.parser.parse_args(["test", "status"])
        cli.dispatch(args, self.cfg)

        log = self.logstream.getvalue()
        self.assertIn("Pending actions: 2", log)
Exemplo n.º 6
0
    def test_upgrade_particular(self):
        self.db0.migrations.extend(["aaaa_first"])
        args = cli.parser.parse_args(
            ["test", "upgrade", "--revision", "bbbb_second"])
        cli.dispatch(args, self.cfg)

        self.assertEqual(list(self.db0.migrations),
                         ["aaaa_first", "bbbb_second"])
        self.assertEqual(dict(self.db0.data), {"value": "b"})
Exemplo n.º 7
0
    def test_upgrade_latest(self):
        self.db0.migrations.extend(["aaaa_first"])

        args = cli.parser.parse_args(["test", "upgrade"])
        cli.dispatch(args, self.cfg)

        self.assertEqual(list(self.db0.migrations),
                         ["aaaa_first", "bbbb_second", "cccc_third"])
        self.assertEqual(dict(self.db0.data), {"hello": "world", "value": "c"})
Exemplo n.º 8
0
    def test_dry_run_upgrade(self):
        self.db0.migrations.extend(["aaaa_first"])
        self.db0.data.update({"value": "a"})

        args = cli.parser.parse_args(["test", "upgrade", "--dry-run"])
        cli.dispatch(args, self.cfg)

        self.assertEqual(list(self.db0.migrations), ["aaaa_first"])
        self.assertEqual(dict(self.db0.data), {"value": "a"})
Exemplo n.º 9
0
def test_new_initialized(sample_config):
    initialize(sample_config)
    args = cli.parser.parse_args(["newdb", "new", "First script"])
    cli.dispatch(args, sample_config)

    with open(get_scripts_filename(sample_config)) as slist:
        lines = slist.readlines()
        assert len(lines) == 3
        assert lines[-1].strip().endswith("_first_script.py")
Exemplo n.º 10
0
def test_new_on_new_script(sample_config, migrant_backend):
    backend = MockedBackend([])
    migrant_backend.set(backend)
    initialize(sample_config)

    args = cli.parser.parse_args(["newdb", "new", "First script"])
    cli.dispatch(args, sample_config)

    assert len(backend.new_scripts) == 1
    assert backend.new_scripts[0].endswith("_first_script")
Exemplo n.º 11
0
    def test_subsequent_emtpy_upgrade(self):
        args = cli.parser.parse_args(["test", "upgrade"])
        cli.dispatch(args, self.cfg)
        # this should be a noop
        cli.dispatch(args, self.cfg)

        self.assertEqual(
            list(self.db0.migrations),
            ["INITIAL", "aaaa_first", "bbbb_second", "cccc_third"],
        )
Exemplo n.º 12
0
    def test_downgrade_to_initial(self):
        self.db0.migrations.extend(
            ["INITIAL", "aaaa_first", "bbbb_second", "cccc_third"])
        self.db0.data.update({"hello": "world", "value": "c"})

        args = cli.parser.parse_args(
            ["test", "upgrade", "--revision", "INITIAL"])
        cli.dispatch(args, self.cfg)

        self.assertEqual(list(self.db0.migrations), ["INITIAL"])
        self.assertEqual(dict(self.db0.data), {})
Exemplo n.º 13
0
def test_init_subsequent(sample_config):
    os.mkdir(sample_config.get("newdb", "repository"))

    slistfname = get_scripts_filename(sample_config)
    with open(slistfname, "w") as f:
        f.write("aaaa_test.py")

    args = cli.parser.parse_args(["newdb", "init"])
    cli.dispatch(args, sample_config)

    with open(slistfname) as slist:
        assert slist.read() == "aaaa_test.py"
Exemplo n.º 14
0
 def test_no_scripts(self):
     args = cli.parser.parse_args(["virgin", "upgrade"])
     cli.dispatch(args, self.cfg)
     self.assertEqual(list(self.db0.migrations), ["INITIAL"])
Exemplo n.º 15
0
def test_new_uninitialized(sample_config):
    args = cli.parser.parse_args(["newdb", "new", "First script"])
    with pytest.raises(exceptions.RepositoryNotFound):
        cli.dispatch(args, sample_config)
Exemplo n.º 16
0
def test_init(sample_config):
    args = cli.parser.parse_args(["newdb", "init"])
    cli.dispatch(args, sample_config)

    repodir = sample_config.get("newdb", "repository")
    assert os.path.exists(repodir)
Exemplo n.º 17
0
def initialize(cfg):
    # Initialize repository
    args = cli.parser.parse_args(["newdb", "init"])
    cli.dispatch(args, cfg)