Add: Tests WIP

This commit is contained in:
mrjk 2022-06-19 23:21:01 -04:00
parent a24a311f23
commit 9341e47cb9
6 changed files with 156 additions and 0 deletions

17
conftest.py Normal file
View File

@ -0,0 +1,17 @@
import pytest
from collections import namedtuple
TestCase = namedtuple("TestCase", ["args", "kwargs", "expected"])
@pytest.fixture(
params = [
TestCase('Simple string', ['bli-blah-bloh !?'], None),
TestCase('fqdn', ['this.is.my.domain'], None),
]
)
def test_case(request):
return request.param

4
run_jupyter.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
export KHEOPS_EXAMPLES_DIR=$PWD
jupyter notebook --notebook-dir=docs/jupyter/

6
run_tests.sh Executable file
View File

@ -0,0 +1,6 @@
# Coverage:
pytest --cov=kheops tests/
pytest

27
tests/test_app.py Normal file
View File

@ -0,0 +1,27 @@
import kheops.app as Kheops
def test_app_config():
# Testing missing namespace
for namespace in ['missing', '_weird_key' ]:
try:
config= 'examples/kheops.yml'
Kheops.Kheops(config=config, namespace=namespace)
assert False
except Exception:
assert True
# Testing unexisting config files
namespace = 'default'
for config in ['toto.yaml', 'toto.noext']:
try:
Kheops.Kheops(config=config, namespace=namespace)
assert False
except Exception:
assert True

68
tests/test_lib.py Normal file
View File

@ -0,0 +1,68 @@
import pytest
from kheops.utils import *
@pytest.mark.parametrize(
"result,args,kwargs",
[
(
['this', 'this/is', 'this/is/my', 'this/is/my/hierarchy'],
['this/is/my/hierarchy'],
{
'reverse': False,
'sep': '/',
'start_index': 0,
},
),
(
['this/is/my', 'this/is/my/hierarchy'],
['this/is/my/hierarchy'],
{
'reverse': False,
'sep': '/',
'start_index': 3,
},
),
(
['hierarchy', 'hierarchy/my', 'hierarchy/my/is', 'hierarchy/my/is/this'],
['this/is/my/hierarchy'],
{
'reverse': True,
'sep': '/',
'start_index': 0,
},
),
(
['this', 'this/is', 'this/is/my', 'this/is/my/server', 'this/is/my/server/domaine'],
['this.is.my.server.domaine'],
{
'reverse': False,
'sep': '.',
'start_index': 0,
},
),
]
)
def test_path_assemble_hier2(result, args, kwargs):
res = path_assemble_hier(*args, **kwargs)
assert result == res
@pytest.mark.parametrize(
"result,args",
[
(
'hello super world',
['hello {{ world }}', {'world': 'super world'}]
)
]
)
def test_render_template(result, args):
res = render_template(*args)
assert res == result

View File

@ -0,0 +1,34 @@
import pytest
from kheops.plugin.scope.loop import Plugin
lookups = [
{
'_run':{ 'scope': { 'my': 'scope'}},},
]
conf = {
'var': 'item_loop',
'data': {
"my": 'data',
},
}
@pytest.mark.parametrize(
""
[
test_case("Validate simple loop",
[
lookups, conf,
],
None,
),
])
def test_plugin():
plugin = Plugin()
ret = plugin.process_items()