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

41 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-09-09 18:26 +0000

1import os 1abcdefgh

2import subprocess 1abcdefgh

3import sys 1abcdefgh

4 

5from typer.testing import CliRunner 1abcdefgh

6 

7from docs_src.commands.help import tutorial005 as mod 1abcdefgh

8 

9app = mod.app 1abcdefgh

10 

11runner = CliRunner() 1abcdefgh

12 

13 

14def test_help(): 1abcdefgh

15 result = runner.invoke(app, ["--help"]) 1abcdefgh

16 assert result.exit_code == 0 1abcdefgh

17 assert "create" in result.output 1abcdefgh

18 assert "Create a new shiny user. ✨" in result.output 1abcdefgh

19 assert "delete" in result.output 1abcdefgh

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

21 assert "Some internal utility function to create." not in result.output 1abcdefgh

22 assert "Some internal utility function to delete." not in result.output 1abcdefgh

23 

24 

25def test_help_create(): 1abcdefgh

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

27 assert result.exit_code == 0 1abcdefgh

28 assert "Create a new shiny user. ✨" in result.output 1abcdefgh

29 assert "The username to be created" in result.output 1abcdefgh

30 assert "Learn more at the Typer docs website" in result.output 1abcdefgh

31 assert "Some internal utility function to create." not in result.output 1abcdefgh

32 

33 

34def test_help_delete(): 1abcdefgh

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

36 assert result.exit_code == 0 1abcdefgh

37 assert "Delete a user with USERNAME." in result.output 1abcdefgh

38 assert "The username to be deleted" in result.output 1abcdefgh

39 assert "Force the deletion 💥" in result.output 1abcdefgh

40 assert "Some internal utility function to delete." not in result.output 1abcdefgh

41 

42 

43def test_create(): 1abcdefgh

44 result = runner.invoke(app, ["create", "Camila"]) 1abcdefgh

45 assert result.exit_code == 0 1abcdefgh

46 assert "Creating user: Camila" in result.output 1abcdefgh

47 

48 

49def test_delete(): 1abcdefgh

50 result = runner.invoke(app, ["delete", "Camila"]) 1abcdefgh

51 assert result.exit_code == 0 1abcdefgh

52 assert "Deleting user: Camila" in result.output 1abcdefgh

53 

54 

55def test_script(): 1abcdefgh

56 result = subprocess.run( 1abcdefgh

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

58 capture_output=True, 

59 encoding="utf-8", 

60 env={**os.environ, "PYTHONIOENCODING": "utf-8"}, 

61 ) 

62 assert "Usage" in result.stdout 1abcdefgh