109 lines
3.2 KiB
Python
109 lines
3.2 KiB
Python
"""Steps for behavioral style tests are defined in this module.
|
|
|
|
Each step is defined by the string decorating it. This string is used
|
|
to call the step in "*.feature" file.
|
|
|
|
"""
|
|
|
|
import pexpect
|
|
|
|
import wrappers
|
|
from behave import when, then
|
|
|
|
|
|
@when("we create database")
|
|
def step_db_create(context):
|
|
"""Send create database."""
|
|
context.cli.sendline("create database {0};".format(context.conf["dbname_tmp"]))
|
|
|
|
context.response = {"database_name": context.conf["dbname_tmp"]}
|
|
|
|
|
|
@when("we drop database")
|
|
def step_db_drop(context):
|
|
"""Send drop database."""
|
|
context.cli.sendline("drop database {0};".format(context.conf["dbname_tmp"]))
|
|
|
|
|
|
@when("we connect to test database")
|
|
def step_db_connect_test(context):
|
|
"""Send connect to database."""
|
|
db_name = context.conf["dbname"]
|
|
context.currentdb = db_name
|
|
context.cli.sendline("use {0};".format(db_name))
|
|
|
|
|
|
@when("we connect to quoted test database")
|
|
def step_db_connect_quoted_tmp(context):
|
|
"""Send connect to database."""
|
|
db_name = context.conf["dbname"]
|
|
context.currentdb = db_name
|
|
context.cli.sendline("use `{0}`;".format(db_name))
|
|
|
|
|
|
@when("we connect to tmp database")
|
|
def step_db_connect_tmp(context):
|
|
"""Send connect to database."""
|
|
db_name = context.conf["dbname_tmp"]
|
|
context.currentdb = db_name
|
|
context.cli.sendline("use {0}".format(db_name))
|
|
|
|
|
|
@when("we connect to dbserver")
|
|
def step_db_connect_dbserver(context):
|
|
"""Send connect to database."""
|
|
context.currentdb = "mysql"
|
|
context.cli.sendline("use mysql")
|
|
|
|
|
|
@then("dbcli exits")
|
|
def step_wait_exit(context):
|
|
"""Make sure the cli exits."""
|
|
wrappers.expect_exact(context, pexpect.EOF, timeout=5)
|
|
|
|
|
|
@then("we see dbcli prompt")
|
|
def step_see_prompt(context):
|
|
"""Wait to see the prompt."""
|
|
user = context.conf["user"]
|
|
host = context.conf["host"]
|
|
dbname = context.currentdb
|
|
wrappers.wait_prompt(context, "{0}@{1}:{2}> ".format(user, host, dbname))
|
|
|
|
|
|
@then("we see help output")
|
|
def step_see_help(context):
|
|
for expected_line in context.fixture_data["help_commands.txt"]:
|
|
wrappers.expect_exact(context, expected_line, timeout=1)
|
|
|
|
|
|
@then("we see database created")
|
|
def step_see_db_created(context):
|
|
"""Wait to see create database output."""
|
|
wrappers.expect_exact(context, "Query OK, 1 row affected", timeout=2)
|
|
|
|
|
|
@then("we see database dropped")
|
|
def step_see_db_dropped(context):
|
|
"""Wait to see drop database output."""
|
|
wrappers.expect_exact(context, "Query OK, 0 rows affected", timeout=2)
|
|
|
|
|
|
@then("we see database dropped and no default database")
|
|
def step_see_db_dropped_no_default(context):
|
|
"""Wait to see drop database output."""
|
|
user = context.conf["user"]
|
|
host = context.conf["host"]
|
|
database = "(none)"
|
|
context.currentdb = None
|
|
|
|
wrappers.expect_exact(context, "Query OK, 0 rows affected", timeout=2)
|
|
wrappers.wait_prompt(context, "{0}@{1}:{2}>".format(user, host, database))
|
|
|
|
|
|
@then("we see database connected")
|
|
def step_see_db_connected(context):
|
|
"""Wait to see drop database output."""
|
|
wrappers.expect_exact(context, 'You are now connected to database "', timeout=2)
|
|
wrappers.expect_exact(context, '"', timeout=2)
|
|
wrappers.expect_exact(context, ' as user "{0}"'.format(context.conf["user"]), timeout=2)
|