20 lines
600 B
Python
20 lines
600 B
Python
import pytest
|
|
from src.utils import ShellParser
|
|
|
|
class TestShellParser:
|
|
def test_tokenize_simple(self):
|
|
tokens = ShellParser.tokenize("echo hello")
|
|
assert "echo" in tokens
|
|
|
|
def test_extract_variables(self):
|
|
vars = ShellParser.extract_variables("echo $VAR1 and $VAR2")
|
|
assert "VAR1" in vars and "VAR2" in vars
|
|
|
|
def test_is_safe_command(self):
|
|
is_safe, issues = ShellParser.is_safe("ls -la /tmp")
|
|
assert is_safe
|
|
|
|
def test_is_safe_dangerous(self):
|
|
is_safe, issues = ShellParser.is_safe("rm -rf $TARGET")
|
|
assert not is_safe
|