Coverage for tests / test_tutorial / test_subcommands / test_tutorial002.py: 100%

52 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-03-26 21:46 +0000

1import subprocess 1abcdefg

2import sys 1abcdefg

3 

4from typer.testing import CliRunner 1abcdefg

5 

6from docs_src.subcommands.tutorial002_py310 import main as mod 1abcdefg

7 

8app = mod.app 1abcdefg

9runner = CliRunner() 1abcdefg

10 

11 

12def test_help(): 1abcdefg

13 result = runner.invoke(app, ["--help"]) 1abcdefg

14 assert result.exit_code == 0 1abcdefg

15 assert "[OPTIONS] COMMAND [ARGS]..." in result.output 1abcdefg

16 assert "Commands" in result.output 1abcdefg

17 assert "items" in result.output 1abcdefg

18 assert "users" in result.output 1abcdefg

19 

20 

21def test_help_items(): 1abcdefg

22 result = runner.invoke(app, ["items", "--help"]) 1abcdefg

23 assert result.exit_code == 0 1abcdefg

24 assert "[OPTIONS] COMMAND [ARGS]..." in result.output 1abcdefg

25 assert "Commands" in result.output 1abcdefg

26 assert "create" in result.output 1abcdefg

27 assert "delete" in result.output 1abcdefg

28 assert "sell" in result.output 1abcdefg

29 

30 

31def test_items_create(): 1abcdefg

32 result = runner.invoke(app, ["items", "create", "Wand"]) 1abcdefg

33 assert result.exit_code == 0 1abcdefg

34 assert "Creating item: Wand" in result.output 1abcdefg

35 

36 

37def test_items_sell(): 1abcdefg

38 result = runner.invoke(app, ["items", "sell", "Vase"]) 1abcdefg

39 assert result.exit_code == 0 1abcdefg

40 assert "Selling item: Vase" in result.output 1abcdefg

41 

42 

43def test_items_delete(): 1abcdefg

44 result = runner.invoke(app, ["items", "delete", "Vase"]) 1abcdefg

45 assert result.exit_code == 0 1abcdefg

46 assert "Deleting item: Vase" in result.output 1abcdefg

47 

48 

49def test_help_users(): 1abcdefg

50 result = runner.invoke(app, ["users", "--help"]) 1abcdefg

51 assert result.exit_code == 0 1abcdefg

52 assert "[OPTIONS] COMMAND [ARGS]..." in result.output 1abcdefg

53 assert "Commands" in result.output 1abcdefg

54 assert "create" in result.output 1abcdefg

55 assert "delete" in result.output 1abcdefg

56 assert "sell" not in result.output 1abcdefg

57 

58 

59def test_users_create(): 1abcdefg

60 result = runner.invoke(app, ["users", "create", "Camila"]) 1abcdefg

61 assert result.exit_code == 0 1abcdefg

62 assert "Creating user: Camila" in result.output 1abcdefg

63 

64 

65def test_users_delete(): 1abcdefg

66 result = runner.invoke(app, ["users", "delete", "Camila"]) 1abcdefg

67 assert result.exit_code == 0 1abcdefg

68 assert "Deleting user: Camila" in result.output 1abcdefg

69 

70 

71def test_script(): 1abcdefg

72 result = subprocess.run( 1abcdefg

73 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"], 

74 capture_output=True, 

75 encoding="utf-8", 

76 ) 

77 assert "Usage" in result.stdout 1abcdefg