Coverage for tests / unit_tests / commands / test_apio_examples.py: 100%

43 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2025-12-24 01:53 +0000

1"""Test for the "apio examples" command.""" 

2 

3import os 

4from os.path import getsize 

5from tests.conftest import ApioRunner 

6from apio.commands.apio import apio_top_cli as apio 

7from apio.common.apio_console import cunstyle 

8 

9 

10def test_examples(apio_runner: ApioRunner): 

11 """Tests the listing and fetching apio examples.""" 

12 

13 with apio_runner.in_sandbox() as sb: 

14 

15 # -- Execute "apio examples" 

16 result = sb.invoke_apio_cmd(apio, ["examples"]) 

17 sb.assert_result_ok(result) 

18 assert "Subcommands:" in cunstyle(result.output) 

19 assert "examples list" in cunstyle(result.output) 

20 

21 # -- 'apio examples list' 

22 result = sb.invoke_apio_cmd(apio, ["examples", "list"]) 

23 sb.assert_result_ok(result) 

24 assert "alhambra-ii/ledon" in result.output 

25 assert "Turning on a led" in result.output 

26 

27 # -- 'apio examples list --docs' 

28 result = sb.invoke_apio_cmd(apio, ["examples", "list", "--docs"]) 

29 sb.assert_result_ok(result) 

30 assert "alhambra-ii/ledon" in result.output 

31 assert "Turning on a led" in result.output 

32 

33 # -- 'apio examples fetch alhambra-ii/ledon' (colors off) 

34 result = sb.invoke_apio_cmd( 

35 apio, 

36 ["examples", "fetch", "alhambra-ii/ledon"], 

37 terminal_mode=False, 

38 ) 

39 sb.assert_result_ok(result) 

40 assert "Copying alhambra-ii/ledon example files" in result.output 

41 assert ( 

42 "Example 'alhambra-ii/ledon' fetched successfully" in result.output 

43 ) 

44 assert getsize("apio.ini") 

45 assert getsize("ledon.v") 

46 

47 # -- 'apio examples fetch alhambra-ii' (colors off) 

48 os.makedirs("temp", exist_ok=False) 

49 os.chdir("temp") 

50 result = sb.invoke_apio_cmd( 

51 apio, 

52 ["examples", "fetch", "alhambra-ii"], 

53 terminal_mode=False, 

54 ) 

55 sb.assert_result_ok(result) 

56 assert "Fetching alhambra-ii/blinky" in result.output 

57 assert "Fetching alhambra-ii/ledon" in result.output 

58 assert "Examples fetched successfully" in result.output 

59 assert getsize("ledon/ledon.v") 

60 os.chdir("..") 

61 

62 # -- 'apio examples fetch alhambra-ii/ledon -d dir1' (colors off) 

63 result = sb.invoke_apio_cmd( 

64 apio, 

65 ["examples", "fetch", "alhambra-ii/ledon", "-d", "dir1"], 

66 terminal_mode=False, 

67 ) 

68 sb.assert_result_ok(result) 

69 assert "Copying alhambra-ii/ledon example files" in result.output 

70 assert ( 

71 "Example 'alhambra-ii/ledon' fetched successfully" in result.output 

72 ) 

73 assert getsize("dir1/ledon.v") 

74 

75 # -- 'apio examples fetch alhambra -d dir2 (colors off) 

76 result = sb.invoke_apio_cmd( 

77 apio, 

78 ["examples", "fetch", "alhambra-ii", "-d", "dir2"], 

79 terminal_mode=False, 

80 ) 

81 sb.assert_result_ok(result) 

82 assert "Examples fetched successfully" in result.output 

83 assert getsize("dir2/ledon/ledon.v")