50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
import os
|
|
from unittest import mock
|
|
|
|
import pytest
|
|
from lightning.app import __package_name__
|
|
from lightning.app.utilities.imports import _get_extras, requires
|
|
|
|
|
|
def test_get_extras():
|
|
extras = "app-cloud" if __package_name__ == "lightning" else "cloud"
|
|
extras = _get_extras(extras)
|
|
assert "docker" in extras
|
|
assert "redis" in extras
|
|
|
|
assert _get_extras("fake-extras") == ""
|
|
|
|
|
|
@mock.patch.dict(os.environ, {"LIGHTING_TESTING": "0"})
|
|
def test_requires():
|
|
@requires("lightning.app")
|
|
def fn():
|
|
pass
|
|
|
|
fn()
|
|
|
|
@requires("shouldnotexist")
|
|
def fn_raise():
|
|
pass
|
|
|
|
with pytest.raises(ModuleNotFoundError, match="Please run: pip install 'shouldnotexist'"):
|
|
fn_raise()
|
|
|
|
class ClassRaise:
|
|
@requires("shouldnotexist")
|
|
def __init__(self):
|
|
pass
|
|
|
|
with pytest.raises(ModuleNotFoundError, match="Please run: pip install 'shouldnotexist'"):
|
|
ClassRaise()
|
|
|
|
|
|
@mock.patch.dict(os.environ, {"LIGHTING_TESTING": "0"})
|
|
def test_requires_multiple():
|
|
@requires(["shouldnotexist1", "shouldnotexist2"])
|
|
def fn_raise():
|
|
pass
|
|
|
|
with pytest.raises(ModuleNotFoundError, match="Please run: pip install 'shouldnotexist1' 'shouldnotexist2'"):
|
|
fn_raise()
|