Coverage for tests/unit_tests/commands/test_apio_examples.py: 100%
43 statements
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-07 05:08 +0000
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-07 05:08 +0000
1# This file is part of the Apio project
2# (C) 2016-present FPGAwars
3# Project authors:
4# * Jesús Arroyo (Jesus89) (2016-2019)
5# * Juan Gonzalez (obijuan) (2019-2024)
6# * The Apio Team (2024-present)
7# License: GPLv2
9"""Test for the "apio examples" command."""
11import os
12from os.path import getsize
13from tests.conftest import ApioRunner
14from apio.commands.apio import apio_top_cli as apio
15from apio.common.apio_console import cunstyle
18def test_examples(apio_runner: ApioRunner):
19 """Tests the listing and fetching apio examples."""
21 with apio_runner.in_sandbox() as sb:
23 # -- Execute "apio examples"
24 result = sb.invoke_apio_cmd(apio, ["examples"])
25 sb.assert_result_ok(result)
26 assert "Subcommands:" in cunstyle(result.output)
27 assert "examples list" in cunstyle(result.output)
29 # -- 'apio examples list'
30 result = sb.invoke_apio_cmd(apio, ["examples", "list"])
31 sb.assert_result_ok(result)
32 assert "alhambra-ii/ledon" in result.output
33 assert "Turns on an LED" in result.output
35 # -- 'apio examples list --docs'
36 result = sb.invoke_apio_cmd(apio, ["examples", "list", "--docs"])
37 sb.assert_result_ok(result)
38 assert "alhambra-ii/ledon" in result.output
39 assert "Turns on an LED" in result.output
41 # -- 'apio examples fetch alhambra-ii/ledon' (colors off)
42 result = sb.invoke_apio_cmd(
43 apio,
44 ["examples", "fetch", "alhambra-ii/ledon"],
45 terminal_mode=False,
46 )
47 sb.assert_result_ok(result)
48 assert "Copying alhambra-ii/ledon example files" in result.output
49 assert (
50 "Example 'alhambra-ii/ledon' fetched successfully" in result.output
51 )
52 assert getsize("apio.ini")
53 assert getsize("main.v")
55 # -- 'apio examples fetch alhambra-ii' (colors off)
56 os.makedirs("temp", exist_ok=False)
57 os.chdir("temp")
58 result = sb.invoke_apio_cmd(
59 apio,
60 ["examples", "fetch", "alhambra-ii"],
61 terminal_mode=False,
62 )
63 sb.assert_result_ok(result)
64 assert "Fetching alhambra-ii/blinky" in result.output
65 assert "Fetching alhambra-ii/ledon" in result.output
66 assert "Examples fetched successfully" in result.output
67 assert getsize("ledon/main.v")
68 os.chdir("..")
70 # -- 'apio examples fetch alhambra-ii/ledon -d dir1' (colors off)
71 result = sb.invoke_apio_cmd(
72 apio,
73 ["examples", "fetch", "alhambra-ii/ledon", "-d", "dir1"],
74 terminal_mode=False,
75 )
76 sb.assert_result_ok(result)
77 assert "Copying alhambra-ii/ledon example files" in result.output
78 assert (
79 "Example 'alhambra-ii/ledon' fetched successfully" in result.output
80 )
81 assert getsize("dir1/main.v")
83 # -- 'apio examples fetch alhambra -d dir2 (colors off)
84 result = sb.invoke_apio_cmd(
85 apio,
86 ["examples", "fetch", "alhambra-ii", "-d", "dir2"],
87 terminal_mode=False,
88 )
89 sb.assert_result_ok(result)
90 assert "Examples fetched successfully" in result.output
91 assert getsize("dir2/ledon/main.v")