Simpler CLI targets (#2700)
Co-authored-by: L. Kärkkäinen <98187+Tronic@users.noreply.github.com>
This commit is contained in:
@@ -49,6 +49,6 @@ def create_app_with_args(args):
|
||||
try:
|
||||
logger.info(f"foo={args.foo}")
|
||||
except AttributeError:
|
||||
logger.info(f"module={args.module}")
|
||||
logger.info(f"target={args.target}")
|
||||
|
||||
return app
|
||||
|
||||
@@ -43,8 +43,10 @@ def read_app_info(lines: List[str]):
|
||||
"appname,extra",
|
||||
(
|
||||
("fake.server.app", None),
|
||||
("fake.server", None),
|
||||
("fake.server:create_app", "--factory"),
|
||||
("fake.server.create_app()", None),
|
||||
("fake.server.create_app", None),
|
||||
),
|
||||
)
|
||||
def test_server_run(
|
||||
@@ -60,14 +62,17 @@ def test_server_run(
|
||||
assert "Goin' Fast @ http://127.0.0.1:8000" in lines
|
||||
|
||||
|
||||
def test_server_run_factory_with_args(caplog):
|
||||
command = [
|
||||
"fake.server.create_app_with_args",
|
||||
"--factory",
|
||||
]
|
||||
@pytest.mark.parametrize(
|
||||
"command",
|
||||
(
|
||||
["fake.server.create_app_with_args", "--factory"],
|
||||
["fake.server.create_app_with_args"],
|
||||
),
|
||||
)
|
||||
def test_server_run_factory_with_args(caplog, command):
|
||||
lines = capture(command, caplog)
|
||||
|
||||
assert "module=fake.server.create_app_with_args" in lines
|
||||
assert "target=fake.server.create_app_with_args" in lines
|
||||
|
||||
|
||||
def test_server_run_factory_with_args_arbitrary(caplog):
|
||||
@@ -81,25 +86,6 @@ def test_server_run_factory_with_args_arbitrary(caplog):
|
||||
assert "foo=bar" in lines
|
||||
|
||||
|
||||
def test_error_with_function_as_instance_without_factory_arg(caplog):
|
||||
command = ["fake.server.create_app"]
|
||||
lines = capture(command, caplog)
|
||||
assert (
|
||||
"Failed to run app: Module is not a Sanic app, it is a function\n "
|
||||
"If this callable returns a Sanic instance try: \n"
|
||||
"sanic fake.server.create_app --factory"
|
||||
) in lines
|
||||
|
||||
|
||||
def test_error_with_path_as_instance_without_simple_arg(caplog):
|
||||
command = ["./fake/"]
|
||||
lines = capture(command, caplog)
|
||||
assert (
|
||||
"Failed to run app: App not found.\n Please use --simple if you "
|
||||
"are passing a directory to sanic.\n eg. sanic ./fake/ --simple"
|
||||
) in lines
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"cmd",
|
||||
(
|
||||
|
||||
@@ -52,34 +52,23 @@ def test_cwd_in_path():
|
||||
|
||||
def test_input_is_dir():
|
||||
loader = AppLoader(str(STATIC))
|
||||
message = (
|
||||
"App not found.\n Please use --simple if you are passing a "
|
||||
f"directory to sanic.\n eg. sanic {str(STATIC)} --simple"
|
||||
)
|
||||
with pytest.raises(ValueError, match=message):
|
||||
loader.load()
|
||||
app = loader.load()
|
||||
assert isinstance(app, Sanic)
|
||||
|
||||
|
||||
def test_input_is_factory():
|
||||
ns = SimpleNamespace(module="foo")
|
||||
ns = SimpleNamespace(target="foo")
|
||||
loader = AppLoader("tests.fake.server:create_app", args=ns)
|
||||
message = (
|
||||
"Module is not a Sanic app, it is a function\n If this callable "
|
||||
"returns a Sanic instance try: \nsanic foo --factory"
|
||||
)
|
||||
with pytest.raises(ValueError, match=message):
|
||||
loader.load()
|
||||
app = loader.load()
|
||||
assert isinstance(app, Sanic)
|
||||
|
||||
|
||||
def test_input_is_module():
|
||||
ns = SimpleNamespace(module="foo")
|
||||
ns = SimpleNamespace(target="foo")
|
||||
loader = AppLoader("tests.fake.server", args=ns)
|
||||
message = (
|
||||
"Module is not a Sanic app, it is a module\n "
|
||||
"Perhaps you meant foo:app?"
|
||||
)
|
||||
with pytest.raises(ValueError, match=message):
|
||||
loader.load()
|
||||
|
||||
app = loader.load()
|
||||
assert isinstance(app, Sanic)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("creator", ("mkcert", "trustme"))
|
||||
|
||||
Reference in New Issue
Block a user