55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
import importlib
|
|
import functools
|
|
import os
|
|
import sys
|
|
import json
|
|
from unittest import TestCase
|
|
from click.testing import CliRunner
|
|
from halfapi.cli.cli import cli
|
|
from pprint import pprint
|
|
|
|
class TestDomain(TestCase):
|
|
DOMAIN = 'dummy_domain'
|
|
ROUTERS = 'routers'
|
|
|
|
@property
|
|
def router_module(self):
|
|
return '.'.join((self.DOMAIN, self.ROUTERS))
|
|
|
|
def setUp(self):
|
|
class_ = CliRunner
|
|
def invoke_wrapper(f):
|
|
"""Augment CliRunner.invoke to emit its output to stdout.
|
|
|
|
This enables pytest to show the output in its logs on test
|
|
failures.
|
|
|
|
"""
|
|
@functools.wraps(f)
|
|
def wrapper(*args, **kwargs):
|
|
echo = kwargs.pop('echo', False)
|
|
result = f(*args, **kwargs)
|
|
|
|
if echo is True:
|
|
sys.stdout.write(result.output)
|
|
|
|
return result
|
|
|
|
return wrapper
|
|
|
|
class_.invoke = invoke_wrapper(class_.invoke)
|
|
self.runner = class_()
|
|
|
|
|
|
def tearDown(self):
|
|
pass
|
|
|
|
def test_routes(self):
|
|
result = self.runner.invoke(cli, '--version')
|
|
self.assertEqual(result.exit_code, 0)
|
|
result = self.runner.invoke(cli, ['routes', '--export', self.router_module])
|
|
self.assertEqual(result.exit_code, 0)
|
|
print(result.stdout)
|
|
# result_d = json.loads(result.stdout)
|
|
# self.assertTrue()
|