34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
"""Step definitions for testing scripts functionality."""
|
|
|
|
import subprocess
|
|
from pathlib import Path
|
|
|
|
from behave import given, then, when
|
|
|
|
|
|
@given("I have the do-something.sh script")
|
|
def step_have_shell_script(context):
|
|
"""Ensure the shell script exists."""
|
|
script_path = Path("scripts/do-something.sh")
|
|
assert script_path.exists(), f"Script {script_path} does not exist"
|
|
context.script_path = script_path
|
|
|
|
|
|
@when("I execute the do-something.sh script")
|
|
def step_execute_shell_script(context):
|
|
"""Execute the shell script."""
|
|
result = subprocess.run(
|
|
["sh", str(context.script_path)], capture_output=True, text=True, check=False
|
|
)
|
|
context.script_output = result.stdout
|
|
context.script_error = result.stderr
|
|
context.script_returncode = result.returncode
|
|
|
|
|
|
@then('the script output should contain "{expected_text}"')
|
|
def step_verify_script_output(context, expected_text):
|
|
"""Verify the script output contains expected text."""
|
|
assert expected_text in context.script_output, (
|
|
f"Expected '{expected_text}' in output, but got: {context.script_output}"
|
|
)
|