Coverage for tests/unit_tests/commands/test_apio_examples.py: 100%
39 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-06 10:20 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-06 10:20 +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 fetch alhambra-ii/ledon' (colors off)
28 result = sb.invoke_apio_cmd(
29 apio,
30 ["examples", "fetch", "alhambra-ii/ledon"],
31 terminal_mode=False,
32 )
33 sb.assert_result_ok(result)
34 assert "Copying alhambra-ii/ledon example files" in result.output
35 assert (
36 "Example 'alhambra-ii/ledon' fetched successfully" in result.output
37 )
38 assert getsize("apio.ini")
39 assert getsize("ledon.v")
41 # -- 'apio examples fetch alhambra-ii' (colors off)
42 os.makedirs("temp", exist_ok=False)
43 os.chdir("temp")
44 result = sb.invoke_apio_cmd(
45 apio,
46 ["examples", "fetch", "alhambra-ii"],
47 terminal_mode=False,
48 )
49 sb.assert_result_ok(result)
50 assert "Fetching alhambra-ii/blinky" in result.output
51 assert "Fetching alhambra-ii/ledon" in result.output
52 assert "Examples fetched successfully" in result.output
53 assert getsize("ledon/ledon.v")
54 os.chdir("..")
56 # -- 'apio examples fetch alhambra-ii/ledon -d dir1' (colors off)
57 result = sb.invoke_apio_cmd(
58 apio,
59 ["examples", "fetch", "alhambra-ii/ledon", "-d", "dir1"],
60 terminal_mode=False,
61 )
62 sb.assert_result_ok(result)
63 assert "Copying alhambra-ii/ledon example files" in result.output
64 assert (
65 "Example 'alhambra-ii/ledon' fetched successfully" in result.output
66 )
67 assert getsize("dir1/ledon.v")
69 # -- 'apio examples fetch alhambra -d dir2 (colors off)
70 result = sb.invoke_apio_cmd(
71 apio,
72 ["examples", "fetch", "alhambra-ii", "-d", "dir2"],
73 terminal_mode=False,
74 )
75 sb.assert_result_ok(result)
76 assert "Examples fetched successfully" in result.output
77 assert getsize("dir2/ledon/ledon.v")