|
20 | 20 |
|
21 | 21 | from behave import * |
22 | 22 |
|
| 23 | +from test.tck import tck_util |
23 | 24 | from test.tck.tck_util import TestValue, send_string, send_parameters |
24 | 25 | from test.tck.resultparser import parse_values, parse_values_to_comparable |
25 | 26 |
|
|
28 | 29 |
|
29 | 30 | @given("init: (?P<statement>.+)") |
30 | 31 | def step_impl(context, statement): |
31 | | - send_string(statement) |
| 32 | + session = tck_util.driver.session() |
| 33 | + session.run(statement) |
| 34 | + session.close() |
32 | 35 |
|
33 | 36 |
|
34 | | -@when("running: (?P<statement>.+)") |
| 37 | +@step("running: (?P<statement>.+)") |
35 | 38 | def step_impl(context, statement): |
36 | | - context.results = {"as_string": send_string(statement)} |
| 39 | + runner = tck_util.Runner(statement).run() |
| 40 | + context.runners.append(runner) |
| 41 | + context.results = [runner.result] |
37 | 42 |
|
38 | 43 |
|
39 | | -@then("result") |
40 | | -def step_impl(context): |
41 | | - result = context.results["as_string"] |
42 | | - given = driver_result_to_comparable_result(result) |
43 | | - expected = table_to_comparable_result(context.table) |
44 | | - if not unordered_equal(given, expected): |
45 | | - raise Exception("Does not match given: \n%s expected: \n%s" % (given, expected)) |
46 | | - |
47 | | - |
48 | | -@when('running parametrized: (?P<statement>.+)') |
| 44 | +@step('running parametrized: (?P<statement>.+)') |
49 | 45 | def step_impl(context, statement): |
50 | 46 | assert len(context.table.rows) == 1 |
51 | 47 | keys = context.table.headings |
52 | 48 | values = context.table.rows[0] |
53 | 49 | parameters = {keys[i]: parse_values(values[i]) for i in range(len(keys))} |
| 50 | + runner = tck_util.Runner(statement, parameters).run() |
| 51 | + context.runners.append(runner) |
| 52 | + context.results = [runner.result] |
54 | 53 |
|
55 | | - context.results = {"as_string": send_parameters(statement, parameters)} |
| 54 | + |
| 55 | +@then("result") |
| 56 | +def step_impl(context): |
| 57 | + expected = table_to_comparable_result(context.table) |
| 58 | + assert(len(context.results) > 0) |
| 59 | + for result in context.results: |
| 60 | + records = list(result) |
| 61 | + given = driver_result_to_comparable_result(records) |
| 62 | + if not unordered_equal(given, expected): |
| 63 | + raise Exception("Does not match given: \n%s expected: \n%s" % (given, expected)) |
56 | 64 |
|
57 | 65 |
|
58 | 66 | def _driver_value_to_comparable(val): |
|
0 commit comments