Now planetmint drop and planemint init, is working throught schema.py file.

This commit is contained in:
andrei 2022-05-04 13:32:23 +03:00
parent 903bec2890
commit 338e5ddfb6
4 changed files with 31 additions and 24 deletions

View File

@ -57,13 +57,13 @@ class TarantoolDB:
db_config = Config().get()["database"] db_config = Config().get()["database"]
cmd_resp = self.run_command(command=self.drop_path, config=db_config) cmd_resp = self.run_command(command=self.drop_path, config=db_config)
self._reconnect() self._reconnect()
return cmd_resp # if "nil" in cmd_resp:
# raise DatabaseDoesNotExist
def init_database(self): def init_database(self):
db_config = Config().get()["database"] db_config = Config().get()["database"]
cmd_resp = self.run_command(command=self.init_path, config=db_config) cmd_resp = self.run_command(command=self.init_path, config=db_config)
self._reconnect() self._reconnect()
return cmd_resp
def run_command(self, command: str, config: dict): def run_command(self, command: str, config: dict):
from subprocess import run from subprocess import run
@ -74,6 +74,4 @@ class TarantoolDB:
input=execute_cmd, input=execute_cmd,
capture_output=True).stderr capture_output=True).stderr
output = output.decode() output = output.decode()
if "nil value" in output: return output
raise DatabaseDoesNotExist
return False if "nil value" in output else True

View File

@ -1,3 +1,5 @@
import warnings
from planetmint.backend.utils import module_dispatch_registrar from planetmint.backend.utils import module_dispatch_registrar
from planetmint import backend from planetmint import backend
from planetmint.backend.tarantool.connection import TarantoolDB from planetmint.backend.tarantool.connection import TarantoolDB
@ -6,5 +8,18 @@ register_schema = module_dispatch_registrar(backend.schema)
@register_schema(TarantoolDB) @register_schema(TarantoolDB)
def drop_database(connection): def drop_database(connection, not_used=None):
connection.drop_database() connection.drop_database()
@register_schema(TarantoolDB)
def create_database(connection, not_used=None):
connection.init_database()
@register_schema(TarantoolDB)
def create_tables(connection, not_used=None):
"""
This function is not necessary for using backend tarantool.
"""
warnings.warn("Function ::create_tables:: Ignored. Not used for create_tables")

View File

@ -245,12 +245,9 @@ def run_election_show(args, planet):
def _run_init(): def _run_init():
# bdb = planetmint.Planetmint() from planetmint.backend import schema
bdb = planetmint.Planetmint()
# schema.init_database(connection=bdb.connection) schema.init_database(connection=bdb.connection)
from planetmint.backend.connection import Connection
conn = Connection()
conn.init_database()
@configure_planetmint @configure_planetmint
@ -259,7 +256,7 @@ def run_init(args):
_run_init() _run_init()
# @configure_planetmint @configure_planetmint
def run_drop(args): def run_drop(args):
"""Drop the database""" """Drop the database"""
@ -271,8 +268,7 @@ def run_drop(args):
from planetmint.backend.connection import Connection from planetmint.backend.connection import Connection
from planetmint.backend import schema from planetmint.backend import schema
conn = Connection() conn = Connection()
return conn.drop_database() schema.drop_database(conn)
# schema.drop_database(connection=conn)
def run_recover(b): def run_recover(b):

View File

@ -122,20 +122,18 @@ def test_drop_db_when_interactive_yes(mock_db_drop, monkeypatch):
assert mock_db_drop.called assert mock_db_drop.called
# @patch('planetmint.backend.schema.drop_database') @patch('planetmint.backend.schema.drop_database')
# def test_drop_db_when_db_does_not_exist(mock_db_drop, capsys): def test_drop_db_when_db_does_not_exist(mock_db_drop, capsys):
def test_drop_db_when_db_does_not_exist():
from planetmint.config import Config from planetmint.config import Config
from planetmint.common.exceptions import DatabaseDoesNotExist from planetmint.common.exceptions import DatabaseDoesNotExist
from planetmint.commands.planetmint import run_drop from planetmint.commands.planetmint import run_drop
args = Namespace(config=None, yes=True) args = Namespace(config=None, yes=True)
# mock_db_drop.side_effect = DatabaseDoesNotExist mock_db_drop.side_effect = DatabaseDoesNotExist
cmd_resp = run_drop(args) run_drop(args)
assert cmd_resp == False # TODO Error now appears because stdout is not readed by function. output_message = capsys.readouterr()[1]
# output_message = capsys.readouterr()[1] assert output_message == "Cannot drop '{name}'. The database does not exist.\n".format(
# assert output_message == "Cannot drop '{name}'. The database does not exist.\n".format( name=Config().get()['database']['name'])
# name=Config().get()['database']['name'])
@patch('planetmint.backend.schema.drop_database') @patch('planetmint.backend.schema.drop_database')