116 lines
3.3 KiB
Python
116 lines
3.3 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)
|