"""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 wrappers from behave import when, then from textwrap import dedent @when("we create table") def step_create_table(context): """Send create table.""" context.cli.sendline("create table a(x text);") @when("we insert into table") def step_insert_into_table(context): """Send insert into table.""" context.cli.sendline("""insert into a(x) values('xxx');""") @when("we update table") def step_update_table(context): """Send insert into table.""" context.cli.sendline("""update a set x = 'yyy' where x = 'xxx';""") @when("we select from table") def step_select_from_table(context): """Send select from table.""" context.cli.sendline("select * from a;") @when("we delete from table") def step_delete_from_table(context): """Send deete from table.""" context.cli.sendline("""delete from a where x = 'yyy';""") @when("we drop table") def step_drop_table(context): """Send drop table.""" context.cli.sendline("drop table a;") @then("we see table created") def step_see_table_created(context): """Wait to see create table output.""" wrappers.expect_exact(context, "Query OK, 0 rows affected", timeout=2) @then("we see record inserted") def step_see_record_inserted(context): """Wait to see insert output.""" wrappers.expect_exact(context, "Query OK, 1 row affected", timeout=2) @then("we see record updated") def step_see_record_updated(context): """Wait to see update output.""" wrappers.expect_exact(context, "Query OK, 1 row affected", timeout=2) @then("we see data selected") def step_see_data_selected(context): """Wait to see select output.""" wrappers.expect_pager( context, dedent("""\ +-----+\r | x |\r +-----+\r | yyy |\r +-----+\r \r """), timeout=2, ) wrappers.expect_exact(context, "1 row in set", timeout=2) @then("we see record deleted") def step_see_data_deleted(context): """Wait to see delete output.""" wrappers.expect_exact(context, "Query OK, 1 row affected", timeout=2) @then("we see table dropped") def step_see_table_dropped(context): """Wait to see drop output.""" wrappers.expect_exact(context, "Query OK, 0 rows affected", timeout=2) @when("we select null") def step_select_null(context): """Send select null.""" context.cli.sendline("select null;") @then("we see null selected") def step_see_null_selected(context): """Wait to see null output.""" wrappers.expect_pager( context, dedent("""\ +--------+\r | NULL |\r +--------+\r | |\r +--------+\r \r """), timeout=2, ) wrappers.expect_exact(context, "1 row in set", timeout=2)