3
0
Fork 0
wuttjamaican/tests/cli/test_base.py
Lance Edgar a6bb538ce9 fix: format all code with black
and from now on should not deviate from that...
2025-08-30 21:25:44 -05:00

48 lines
1.3 KiB
Python

# -*- coding: utf-8; -*-
import os
from unittest import TestCase
from unittest.mock import MagicMock, patch
import typer
from wuttjamaican.conf import WuttaConfig
from wuttjamaican.cli import base as mod
here = os.path.dirname(__file__)
example_conf = os.path.join(here, "example.conf")
class TestMakeCliConfig(TestCase):
def test_basic(self):
ctx = MagicMock(params={"config_paths": [example_conf]})
config = mod.make_cli_config(ctx)
self.assertIsInstance(config, WuttaConfig)
self.assertEqual(config.files_read, [example_conf])
class TestTyperCallback(TestCase):
def test_basic(self):
ctx = MagicMock(params={"config_paths": [example_conf]})
mod.typer_callback(ctx)
self.assertIsInstance(ctx.wutta_config, WuttaConfig)
self.assertEqual(ctx.wutta_config.files_read, [example_conf])
class TestTyperEagerImports(TestCase):
def test_basic(self):
typr = mod.make_typer(name="foobreezy")
with patch.object(mod, "load_entry_points") as load_entry_points:
mod.typer_eager_imports(typr)
load_entry_points.assert_called_once_with("foobreezy.typer_imports")
class TestMakeTyper(TestCase):
def test_basic(self):
typr = mod.make_typer()
self.assertIsInstance(typr, typer.Typer)