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
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-24 01:53 +0000
1"""Test for the "apio examples" command."""
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
10def test_examples(apio_runner: ApioRunner):
11 """Tests the listing and fetching apio examples."""
13 with apio_runner.in_sandbox() as sb:
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)
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
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
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")
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("..")
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")
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")