diff --git a/tests/test_cli_proj.py b/tests/test_cli_proj.py new file mode 100644 index 0000000..4ebe4fd --- /dev/null +++ b/tests/test_cli_proj.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +import os +import subprocess +import importlib +import tempfile +from unittest.mock import patch + +import pytest +from click.testing import CliRunner +from configparser import ConfigParser + +PROJNAME = os.environ.get('PROJ','tmp_api') + +@pytest.fixture +def subproc(project_runner): + def caller(cmd): + proc = subprocess.Popen(cmd.split(' ')) + return proc.wait() + return caller + +@pytest.mark.incremental +class TestCliProj(): + def test_cmds(self, subproc): + assert subproc('halfapi run --help') == 0 + assert subproc('halfapi domain --help') == 0 + + @pytest.mark.skip + def test_domain_commands(self, project_runner): + res = project_runner(['domain', 'foobar']) + assert res.exit_code == 2 + res = project_runner(['domain', '--help']) + assert res.exit_code == 0 + res = project_runner(['domain', 'create', '--help']) + assert res.exit_code == 0 + res = project_runner(['domain', 'read', '--help']) + assert res.exit_code == 0 + res = project_runner(['domain', 'update', '--help']) + assert res.exit_code == 0 + res = project_runner(['domain', 'delete', '--help']) + assert res.exit_code == 0 + + @pytest.mark.skip + def test_domain_create(self, project_runner): + DOMNAME='tmp_domain' + res = project_runner(['domain', 'create', DOMNAME]) + srcdir = os.path.join('domains', 'src', DOMNAME) + assert os.path.isdir(srcdir) + moddir = os.path.join(srcdir, DOMNAME) + assert os.path.isdir(moddir) + setup = os.path.join(srcdir, 'setup.py') + assert os.path.isfile(setup) + initfile = os.path.join(moddir, '__init__.py') + assert os.path.isfile(initfile) + aclfile = os.path.join(moddir, 'acl.py') + assert os.path.isfile(aclfile) + aclsdir = os.path.join(moddir, 'acls') + assert os.path.isdir(aclsdir) + routersdir = os.path.join(moddir, 'routers') + assert os.path.isdir(routersdir) + + try: + dom_mod = importlib.import_module(DOMNAME, srcdir) + assert hasattr(dom_mod, 'ROUTERS') + except ImportError: + assert False