Beispiel #1
0
    def test_db_version_raise_not_controlled_error_no_tables(self, mock_vc):
        with mock.patch.object(sqlalchemy, 'MetaData') as mock_meta:
            self.mock_api_db_version.side_effect = (
                migrate_exception.DatabaseNotControlledError('oups'),
                self.init_version)
            my_meta = mock.MagicMock()
            my_meta.tables = {}
            mock_meta.return_value = my_meta

            upgrades._migrate_db_version(self.engine, self.path,
                                         self.init_version)

            mock_vc.assert_called_once_with(self.engine, self.return_value1,
                                            self.init_version)
Beispiel #2
0
    def test_db_version_raise_not_controlled_migrate_tables(self, mock_vc):
        # When there are tables but the sqlalchemy-migrate control table
        # (migrate_version) is present, attempt to version the db.
        # This simulates the case where there is are multiple repos (different
        # abs_paths) and a different path has been versioned already.
        with mock.patch.object(sqlalchemy, 'MetaData') as mock_meta:
            self.mock_api_db_version.side_effect = [
                migrate_exception.DatabaseNotControlledError('oups'), None
            ]
            my_meta = mock.MagicMock()
            my_meta.tables = {'migrate_version': 1, 'b': 2}
            mock_meta.return_value = my_meta

            upgrades._migrate_db_version(self.engine, self.path,
                                         self.init_version)

            mock_vc.assert_called_once_with(self.engine, self.return_value1,
                                            self.init_version)
Beispiel #3
0
    def test_db_version_raise_not_controlled_error_first(self):
        with mock.patch.object(
                upgrades,
                '_migrate_db_version_control',
        ) as mock_ver:
            self.mock_api_db_version.side_effect = [
                migrate_exception.DatabaseNotControlledError('oups'),
                self.test_version
            ]

            ret_val = upgrades._migrate_db_version(self.engine, self.path,
                                                   self.init_version)
            self.assertEqual(self.test_version, ret_val)
            mock_ver.assert_called_once_with(self.engine,
                                             self.path,
                                             version=self.init_version)
Beispiel #4
0
 def version(self):
     with sql.session_for_read() as session:
         return upgrades._migrate_db_version(
             session.get_bind(), self.repo_path, self.min_version,
         )
Beispiel #5
0
 def test_db_version_return(self):
     ret_val = upgrades._migrate_db_version(self.engine, self.path,
                                            self.init_version)
     self.assertEqual(self.test_version, ret_val)