Coverage for tests/test_cli.py: 100%

16 statements  

« prev     ^ index     » next       coverage.py v7.4.1, created at 2024-02-12 09:19 +0100

1import subprocess as sp 

2import sys 

3 

4import pytest 

5from inline_snapshot import snapshot 

6 

7 

8@pytest.mark.skipif(sys.version_info < (3, 9), reason="3.8 unparses differently") 

9def test_cli(tmp_path): 

10 file = tmp_path / "example.py" 

11 

12 file.write_text( 

13 """\ 

14from foo import bar 

15 

16 

17def f(): 

18 print(bar()) 

19 print(bar()) 

20""" 

21 ) 

22 result = sp.run(["lazy-imports-lite", "preview", str(file)], capture_output=True) 

23 assert result.returncode == 0 

24 assert result.stdout.decode().replace("\r\n", "\n") == snapshot( 

25 """\ 

26import lazy_imports_lite._hooks as __lazy_imports_lite__ 

27globals = __lazy_imports_lite__.make_globals(lambda g=globals: g()) 

28bar = __lazy_imports_lite__.ImportFrom(__package__, 'foo', 'bar') 

29 

30def f(): 

31 print(bar._lazy_value()) 

32 print(bar._lazy_value()) 

33""" 

34 ) 

35 

36 

37def test_cli_invalid_args(): 

38 result = sp.run([sys.executable, "-m", "lazy_imports_lite"], capture_output=True) 

39 assert result.returncode == 1 

40 assert result.stdout.decode().replace("\r\n", "\n") == snapshot("") 

41 assert result.stderr.decode().replace("\r\n", "\n") == snapshot( 

42 """\ 

43Error: Please specify a valid subcommand. Use 'preview --help' for more information. 

44""" 

45 )