Coverage for tests/test_tutorial/test_commands/test_help/test_tutorial001.py: 100%

77 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-04-14 00:18 +0000

1import subprocess 1abcdefghi

2import sys 1abcdefghi

3 

4from typer.testing import CliRunner 1abcdefghi

5 

6from docs_src.commands.help import tutorial001 as mod 1abcdefghi

7 

8app = mod.app 1abcdefghi

9 

10runner = CliRunner() 1abcdefghi

11 

12 

13def test_help(): 1abcdefghi

14 result = runner.invoke(app, ["--help"]) 1abcdefghi

15 assert result.exit_code == 0 1abcdefghi

16 assert "Awesome CLI user manager." in result.output 1abcdefghi

17 assert "create" in result.output 1abcdefghi

18 assert "Create a new user with USERNAME." in result.output 1abcdefghi

19 assert "delete" in result.output 1abcdefghi

20 assert "Delete a user with USERNAME." in result.output 1abcdefghi

21 assert "delete-all" in result.output 1abcdefghi

22 assert "Delete ALL users in the database." in result.output 1abcdefghi

23 assert "init" in result.output 1abcdefghi

24 assert "Initialize the users database." in result.output 1abcdefghi

25 

26 

27def test_help_create(): 1abcdefghi

28 result = runner.invoke(app, ["create", "--help"]) 1abcdefghi

29 assert result.exit_code == 0 1abcdefghi

30 assert "create [OPTIONS] USERNAME" in result.output 1abcdefghi

31 assert "Create a new user with USERNAME." in result.output 1abcdefghi

32 

33 

34def test_help_delete(): 1abcdefghi

35 result = runner.invoke(app, ["delete", "--help"]) 1abcdefghi

36 assert result.exit_code == 0 1abcdefghi

37 assert "delete [OPTIONS] USERNAME" in result.output 1abcdefghi

38 assert "Delete a user with USERNAME." in result.output 1abcdefghi

39 assert "--force" in result.output 1abcdefghi

40 assert "--no-force" in result.output 1abcdefghi

41 assert "Force deletion without confirmation." in result.output 1abcdefghi

42 

43 

44def test_help_delete_all(): 1abcdefghi

45 result = runner.invoke(app, ["delete-all", "--help"]) 1abcdefghi

46 assert result.exit_code == 0 1abcdefghi

47 assert "delete-all [OPTIONS]" in result.output 1abcdefghi

48 assert "Delete ALL users in the database." in result.output 1abcdefghi

49 assert "If --force is not used, will ask for confirmation." in result.output 1abcdefghi

50 assert "[required]" in result.output 1abcdefghi

51 assert "--force" in result.output 1abcdefghi

52 assert "--no-force" in result.output 1abcdefghi

53 assert "Force deletion without confirmation." in result.output 1abcdefghi

54 

55 

56def test_help_init(): 1abcdefghi

57 result = runner.invoke(app, ["init", "--help"]) 1abcdefghi

58 assert result.exit_code == 0 1abcdefghi

59 assert "init [OPTIONS]" in result.output 1abcdefghi

60 assert "Initialize the users database." in result.output 1abcdefghi

61 

62 

63def test_create(): 1abcdefghi

64 result = runner.invoke(app, ["create", "Camila"]) 1abcdefghi

65 assert result.exit_code == 0 1abcdefghi

66 assert "Creating user: Camila" in result.output 1abcdefghi

67 

68 

69def test_delete(): 1abcdefghi

70 result = runner.invoke(app, ["delete", "Camila"], input="y\n") 1abcdefghi

71 assert result.exit_code == 0 1abcdefghi

72 assert "Are you sure you want to delete the user? [y/n]:" in result.output 1abcdefghi

73 assert "Deleting user: Camila" in result.output 1abcdefghi

74 

75 

76def test_no_delete(): 1abcdefghi

77 result = runner.invoke(app, ["delete", "Camila"], input="n\n") 1abcdefghi

78 assert result.exit_code == 0 1abcdefghi

79 assert "Are you sure you want to delete the user? [y/n]:" in result.output 1abcdefghi

80 assert "Operation cancelled" in result.output 1abcdefghi

81 

82 

83def test_delete_all(): 1abcdefghi

84 result = runner.invoke(app, ["delete-all"], input="y\n") 1abcdefghi

85 assert result.exit_code == 0 1abcdefghi

86 assert "Are you sure you want to delete ALL users? [y/n]:" in result.output 1abcdefghi

87 assert "Deleting all users" in result.output 1abcdefghi

88 

89 

90def test_no_delete_all(): 1abcdefghi

91 result = runner.invoke(app, ["delete-all"], input="n\n") 1abcdefghi

92 assert result.exit_code == 0 1abcdefghi

93 assert "Are you sure you want to delete ALL users? [y/n]:" in result.output 1abcdefghi

94 assert "Operation cancelled" in result.output 1abcdefghi

95 

96 

97def test_init(): 1abcdefghi

98 result = runner.invoke(app, ["init"]) 1abcdefghi

99 assert result.exit_code == 0 1abcdefghi

100 assert "Initializing user database" in result.output 1abcdefghi

101 

102 

103def test_script(): 1abcdefghi

104 result = subprocess.run( 1abcdefghi

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

106 capture_output=True, 

107 encoding="utf-8", 

108 ) 

109 assert "Usage" in result.stdout 1abcdefghi