You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
42 lines
1.3 KiB
import pytest
|
|
from scripttease.library.commands import Command, ItemizedCommand
|
|
from scripttease.parsers import filter_commands, load_commands
|
|
|
|
|
|
def test_filter_commands():
|
|
commands = [
|
|
Command("apt-get install apache2 -y", environments=["base"], tags=["web"]),
|
|
Command("apt-get install apache-top -y", environments=["live"], tags=["web"]),
|
|
Command("pip install django-debug-toolbar", environments=["development"], tags=["django"]),
|
|
Command("pip install django", environments=["base"], tags=["django"]),
|
|
]
|
|
f1 = filter_commands(commands, environments=["base", "live"])
|
|
assert len(f1) == 3
|
|
|
|
f2 = filter_commands(commands, tags=["django"])
|
|
assert len(f2) == 2
|
|
|
|
f3 = filter_commands(commands, environments=["base", "development"])
|
|
assert len(f3) == 3
|
|
|
|
f4 = filter_commands(commands, environments=["base"], tags=["web"])
|
|
assert len(f4) == 1
|
|
|
|
|
|
def test_load_commands():
|
|
commands = load_commands("nonexistent.xml")
|
|
assert commands is None
|
|
|
|
commands = load_commands("nonexistent.ini")
|
|
assert commands is None
|
|
|
|
commands = load_commands("tests/examples/bad_examples.ini")
|
|
assert commands is None
|
|
|
|
commands = load_commands(
|
|
"tests/examples/python_examples.ini",
|
|
filters={
|
|
'tags': ["python-support"],
|
|
}
|
|
)
|
|
assert len(commands) == 2
|
|
|