Source code for nabu.tests
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
import pytest
from nabu.utils import get_folder_path
from nabu import __nabu_modules__ as nabu_modules
[docs]
def get_modules_to_test(mods):
sep = os.sep
modules = []
extra_args = []
for mod in mods:
if mod.startswith("-"):
extra_args.append(mod)
continue
# Test a whole module
if mod.lower() in nabu_modules:
mod_abspath = os.path.join(get_folder_path(mod), "tests")
# Test an individual file
else:
mod_path = mod.replace(".", sep) + ".py"
mod_abspath = get_folder_path(mod_path)
# test only one file
mod_split = mod_abspath.split(sep)
mod_split.insert(-1, "tests")
mod_abspath = sep.join(mod_split)
if not (os.path.exists(mod_abspath)):
print("Error: no such file or directory: %s" % mod_abspath)
exit(1)
modules.append(mod_abspath)
return modules, extra_args
[docs]
def nabu_test():
nabu_folder = get_folder_path()
args = sys.argv[1:]
modules_to_test, extra_args = get_modules_to_test(args)
if len(modules_to_test) == 0:
modules_to_test = [
nabu_folder,
]
pytest_args = extra_args + modules_to_test
return pytest.main(pytest_args)
if __name__ == "__main__":
ret = nabu_test()
exit(ret)