Exemplo n.º 1
0
    def _test_validate_head_file_helper(self, heads, file_heads=None,
                                        branchless=False):
        if file_heads is None:
            file_heads = []
        fake_config = self.configs[0]
        mock_open = self.useFixture(
            tools.OpenFixture(cli._get_head_file_path(fake_config),
                              '\n'.join(file_heads))
        ).mock_open
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc,\
                mock.patch.object(cli, '_use_separate_migration_branches',
                                  return_value=not branchless):
            fc.return_value.get_heads.return_value = heads

            if not branchless or all(head in file_heads for head in heads):
                cli.validate_head_file(fake_config)
            else:
                self.assertRaises(
                    SystemExit,
                    cli.validate_head_file,
                    fake_config
                )
                self.assertTrue(self.mock_alembic_err.called)

            if branchless:
                mock_open.assert_called_with(
                    cli._get_head_file_path(fake_config))
                fc.assert_called_once_with(fake_config)
            else:
                self.assertFalse(mock_open.called)
                self.assertFalse(fc.called)
Exemplo n.º 2
0
    def _test_validate_head_file_helper(self,
                                        heads,
                                        file_heads=None,
                                        branchless=False):
        if file_heads is None:
            file_heads = []
        fake_config = self.configs[0]
        mock_open = self.useFixture(
            tools.OpenFixture(cli._get_head_file_path(fake_config),
                              '\n'.join(file_heads))).mock_open
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc,\
                mock.patch.object(cli, '_use_separate_migration_branches',
                                  return_value=not branchless):
            fc.return_value.get_heads.return_value = heads

            if not branchless or all(head in file_heads for head in heads):
                cli.validate_head_file(fake_config)
            else:
                self.assertRaises(SystemExit, cli.validate_head_file,
                                  fake_config)
                self.assertTrue(self.mock_alembic_err.called)

            if branchless:
                mock_open.assert_called_with(
                    cli._get_head_file_path(fake_config))
                fc.assert_called_once_with(fake_config)
            else:
                self.assertFalse(mock_open.called)
                self.assertFalse(fc.called)
Exemplo n.º 3
0
    def _test_validate_heads_file_helper(self, heads, file_heads=None,
                                         branchless=False):
        if file_heads is None:
            file_heads = []
        fake_config = FakeConfig()
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc:
            fc.return_value.get_heads.return_value = heads
            with mock.patch('six.moves.builtins.open') as mock_open:
                mock_open.return_value.__enter__ = lambda s: s
                mock_open.return_value.__exit__ = mock.Mock()
                mock_open.return_value.read.return_value = (
                    '\n'.join(file_heads))

                with mock.patch('os.path.isfile') as is_file:
                    is_file.return_value = bool(file_heads)

                    if all(head in file_heads for head in heads):
                        cli.validate_heads_file(fake_config)
                    else:
                        self.assertRaises(
                            SystemExit,
                            cli.validate_heads_file,
                            fake_config
                        )
                        self.mock_alembic_err.assert_called_once_with(mock.ANY)
                if branchless:
                    mock_open.assert_called_with(
                        cli._get_head_file_path(fake_config))
                else:
                    mock_open.assert_called_with(
                        cli._get_heads_file_path(fake_config))
            fc.assert_called_once_with(fake_config)
Exemplo n.º 4
0
    def test_update_head_files_success(self, *mocks):
        heads = ['a', 'b']
        mock_open_con = self.useFixture(
                    tools.OpenFixture(cli._get_contract_head_file_path(
                        self.configs[0]))).mock_open
        mock_open_ex = self.useFixture(
            tools.OpenFixture(cli._get_expand_head_file_path(
                self.configs[0]))).mock_open
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc:
            fc.return_value.get_heads.return_value = heads
            revs = {heads[0]: FakeRevision(labels=cli.CONTRACT_BRANCH),
                    heads[1]: FakeRevision(labels=cli.EXPAND_BRANCH)}
            fc.return_value.get_revision.side_effect = revs.__getitem__
            cli.update_head_files(self.configs[0])
            mock_open_con.return_value.write.assert_called_with(
                heads[0] + '\n')
            mock_open_ex.return_value.write.assert_called_with(heads[1] + '\n')

            old_head_file = cli._get_head_file_path(
                self.configs[0])
            old_heads_file = cli._get_heads_file_path(
                self.configs[0])
            delete_if_exists = mocks[0]
            self.assertIn(mock.call(old_head_file),
                          delete_if_exists.call_args_list)
            self.assertIn(mock.call(old_heads_file),
                          delete_if_exists.call_args_list)
Exemplo n.º 5
0
    def test_update_head_files_success(self, *mocks):
        heads = ['a', 'b']
        mock_open_con = self.useFixture(
            tools.OpenFixture(cli._get_contract_head_file_path(
                self.configs[0]))).mock_open
        mock_open_ex = self.useFixture(
            tools.OpenFixture(cli._get_expand_head_file_path(
                self.configs[0]))).mock_open
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc:
            fc.return_value.get_heads.return_value = heads
            revs = {
                heads[0]: FakeRevision(labels=cli.CONTRACT_BRANCH),
                heads[1]: FakeRevision(labels=cli.EXPAND_BRANCH)
            }
            fc.return_value.get_revision.side_effect = revs.__getitem__
            cli.update_head_files(self.configs[0])
            mock_open_con.return_value.write.assert_called_with(heads[0] +
                                                                '\n')
            mock_open_ex.return_value.write.assert_called_with(heads[1] + '\n')

            old_head_file = cli._get_head_file_path(self.configs[0])
            old_heads_file = cli._get_heads_file_path(self.configs[0])
            delete_if_exists = mocks[0]
            self.assertIn(mock.call(old_head_file),
                          delete_if_exists.call_args_list)
            self.assertIn(mock.call(old_heads_file),
                          delete_if_exists.call_args_list)
Exemplo n.º 6
0
    def _test_validate_heads_file_helper(self, heads, file_heads=None,
                                         branchless=False):
        if file_heads is None:
            file_heads = []
        fake_config = self.configs[0]
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc,\
                mock.patch.object(cli, '_use_separate_migration_branches',
                                  return_value=not branchless):
            fc.return_value.get_heads.return_value = heads
            with mock.patch.object(cli, 'open') as mock_open:
                mock_open.return_value.__enter__ = lambda s: s
                mock_open.return_value.__exit__ = mock.Mock()
                mock_open.return_value.read.return_value = (
                    '\n'.join(file_heads))

                if all(head in file_heads for head in heads):
                    cli.validate_heads_file(fake_config)
                else:
                    self.assertRaises(
                        SystemExit,
                        cli.validate_heads_file,
                        fake_config
                    )
                    self.assertTrue(self.mock_alembic_err.called)

                if branchless:
                    mock_open.assert_called_with(
                        cli._get_head_file_path(fake_config))
                else:
                    mock_open.assert_called_with(
                        cli._get_heads_file_path(fake_config))

            fc.assert_called_once_with(fake_config)
Exemplo n.º 7
0
    def _test_validate_heads_file_helper(self, heads, file_heads=None,
                                         branchless=False):
        if file_heads is None:
            file_heads = []
        fake_config = self.configs[0]
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc,\
                mock.patch.object(cli, '_use_separate_migration_branches',
                                  return_value=not branchless):
            fc.return_value.get_heads.return_value = heads
            with mock.patch('six.moves.builtins.open') as mock_open:
                mock_open.return_value.__enter__ = lambda s: s
                mock_open.return_value.__exit__ = mock.Mock()
                mock_open.return_value.read.return_value = (
                    '\n'.join(file_heads))

                if all(head in file_heads for head in heads):
                    cli.validate_heads_file(fake_config)
                else:
                    self.assertRaises(
                        SystemExit,
                        cli.validate_heads_file,
                        fake_config
                    )
                    self.assertTrue(self.mock_alembic_err.called)

                if branchless:
                    mock_open.assert_called_with(
                        cli._get_head_file_path(fake_config))
                else:
                    mock_open.assert_called_with(
                        cli._get_heads_file_path(fake_config))

            fc.assert_called_once_with(fake_config)
Exemplo n.º 8
0
    def _test_update_head_files_success(self, revs, *mocks):
        contract_head = expand_head = None
        for rev, revision in revs.items():
            for branch_label in revision.branch_labels:
                if branch_label.endswith(cli.CONTRACT_BRANCH):
                    contract_head = rev
                if branch_label.endswith(cli.EXPAND_BRANCH):
                    expand_head = rev
        mock_open_con = self.useFixture(
                    tools.OpenFixture(cli._get_contract_head_file_path(
                        self.configs[0]))).mock_open
        mock_open_ex = self.useFixture(
            tools.OpenFixture(cli._get_expand_head_file_path(
                self.configs[0]))).mock_open
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc:
            fc.return_value.get_heads.return_value = list(revs)
            fc.return_value.get_revision.side_effect = revs.__getitem__
            cli.update_head_files(self.configs[0])
            mock_open_con.return_value.write.assert_called_with(
                contract_head + '\n')
            mock_open_ex.return_value.write.assert_called_with(
                expand_head + '\n')

            old_head_file = cli._get_head_file_path(
                self.configs[0])
            old_heads_file = cli._get_heads_file_path(
                self.configs[0])
            delete_if_exists = mocks[0]
            self.assertIn(mock.call(old_head_file),
                          delete_if_exists.call_args_list)
            self.assertIn(mock.call(old_heads_file),
                          delete_if_exists.call_args_list)
Exemplo n.º 9
0
    def _test_validate_heads_file_helper(self,
                                         heads,
                                         file_heads=None,
                                         branchless=False):
        if file_heads is None:
            file_heads = []
        fake_config = FakeConfig()
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc:
            fc.return_value.get_heads.return_value = heads
            with mock.patch('six.moves.builtins.open') as mock_open:
                mock_open.return_value.__enter__ = lambda s: s
                mock_open.return_value.__exit__ = mock.Mock()
                mock_open.return_value.read.return_value = (
                    '\n'.join(file_heads))

                with mock.patch('os.path.isfile') as is_file:
                    is_file.return_value = bool(file_heads)

                    if all(head in file_heads for head in heads):
                        cli.validate_heads_file(fake_config)
                    else:
                        self.assertRaises(SystemExit, cli.validate_heads_file,
                                          fake_config)
                        self.mock_alembic_err.assert_called_once_with(mock.ANY)
                if branchless:
                    mock_open.assert_called_with(
                        cli._get_head_file_path(fake_config))
                else:
                    mock_open.assert_called_with(
                        cli._get_heads_file_path(fake_config))
            fc.assert_called_once_with(fake_config)
Exemplo n.º 10
0
 def test_update_head_file_success(self):
     head = ['b']
     mock_open = self.useFixture(
         tools.OpenFixture(cli._get_head_file_path(
             self.configs[0]))).mock_open
     with mock.patch('alembic.script.ScriptDirectory.from_config') as fc:
         fc.return_value.get_heads.return_value = head
         cli.update_head_file(self.configs[0])
         mock_open.return_value.write.assert_called_with('\n'.join(head))
Exemplo n.º 11
0
 def test_update_head_file_success(self):
     head = ['b']
     mock_open = self.useFixture(
                 tools.OpenFixture(cli._get_head_file_path(
                     self.configs[0]))).mock_open
     with mock.patch('alembic.script.ScriptDirectory.from_config') as fc:
         fc.return_value.get_heads.return_value = head
         cli.update_head_file(self.configs[0])
         mock_open.return_value.write.assert_called_with(
             '\n'.join(head))
Exemplo n.º 12
0
    def test_update_heads_file_success(self, *os_mocks):
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc:
            heads = ('a', 'b')
            fc.return_value.get_heads.return_value = heads
            with mock.patch('six.moves.builtins.open') as mock_open:
                mock_open.return_value.__enter__ = lambda s: s
                mock_open.return_value.__exit__ = mock.Mock()

                cli.update_heads_file(self.configs[0])
                mock_open.return_value.write.assert_called_once_with(
                    '\n'.join(heads))

                old_head_file = cli._get_head_file_path(self.configs[0])
                for mock_ in os_mocks:
                    mock_.assert_called_with(old_head_file)
Exemplo n.º 13
0
    def test_update_heads_file_success(self, *os_mocks):
        with mock.patch('alembic.script.ScriptDirectory.from_config') as fc:
            heads = ('a', 'b')
            fc.return_value.get_heads.return_value = heads
            with mock.patch('six.moves.builtins.open') as mock_open:
                mock_open.return_value.__enter__ = lambda s: s
                mock_open.return_value.__exit__ = mock.Mock()

                cli.update_heads_file(self.configs[0])
                mock_open.return_value.write.assert_called_once_with(
                    '\n'.join(heads))

                old_head_file = cli._get_head_file_path(self.configs[0])
                for mock_ in os_mocks:
                    mock_.assert_called_with(old_head_file)