Skip to content

Commit a65bfa1

Browse files
test: Add coverage for cli/parsers/info.py (Module 35)
Created comprehensive tests for info command parsers: - TestInfoParserRegistration: 3 tests for info command - TestFrameworksParserRegistration: 8 tests for frameworks command Coverage: All parser registration and argument handling tested Tests: 11 passing Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 8df05e8 commit a65bfa1

1 file changed

Lines changed: 169 additions & 0 deletions

File tree

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
"""Tests for CLI info parsers.
2+
3+
Module: cli/parsers/info.py (26 lines)
4+
5+
Tests command registration for info and frameworks commands.
6+
"""
7+
8+
import pytest
9+
from argparse import ArgumentParser
10+
11+
from empathy_os.cli.parsers.info import register_parsers
12+
from empathy_os.cli.commands import info as info_commands
13+
14+
15+
@pytest.mark.unit
16+
class TestInfoParserRegistration:
17+
"""Test suite for info parser registration."""
18+
19+
def test_registers_info_command(self):
20+
"""Test that info command is registered."""
21+
# Given
22+
parser = ArgumentParser()
23+
subparsers = parser.add_subparsers()
24+
25+
# When
26+
register_parsers(subparsers)
27+
args = parser.parse_args(["info"])
28+
29+
# Then
30+
assert hasattr(args, "func")
31+
assert args.func == info_commands.cmd_info
32+
33+
def test_info_command_has_config_argument(self):
34+
"""Test that info command accepts --config argument."""
35+
# Given
36+
parser = ArgumentParser()
37+
subparsers = parser.add_subparsers()
38+
register_parsers(subparsers)
39+
40+
# When
41+
args = parser.parse_args(["info", "--config", "test.yml"])
42+
43+
# Then
44+
assert args.config == "test.yml"
45+
46+
def test_info_config_argument_is_optional(self):
47+
"""Test that --config is optional for info command."""
48+
# Given
49+
parser = ArgumentParser()
50+
subparsers = parser.add_subparsers()
51+
register_parsers(subparsers)
52+
53+
# When
54+
args = parser.parse_args(["info"])
55+
56+
# Then
57+
assert args.config is None
58+
59+
60+
@pytest.mark.unit
61+
class TestFrameworksParserRegistration:
62+
"""Test suite for frameworks parser registration."""
63+
64+
def test_registers_frameworks_command(self):
65+
"""Test that frameworks command is registered."""
66+
# Given
67+
parser = ArgumentParser()
68+
subparsers = parser.add_subparsers()
69+
70+
# When
71+
register_parsers(subparsers)
72+
args = parser.parse_args(["frameworks"])
73+
74+
# Then
75+
assert hasattr(args, "func")
76+
assert args.func == info_commands.cmd_frameworks
77+
78+
def test_frameworks_command_has_all_flag(self):
79+
"""Test that frameworks command accepts --all flag."""
80+
# Given
81+
parser = ArgumentParser()
82+
subparsers = parser.add_subparsers()
83+
register_parsers(subparsers)
84+
85+
# When
86+
args = parser.parse_args(["frameworks", "--all"])
87+
88+
# Then
89+
assert args.all is True
90+
91+
def test_frameworks_all_flag_defaults_to_false(self):
92+
"""Test that --all defaults to False."""
93+
# Given
94+
parser = ArgumentParser()
95+
subparsers = parser.add_subparsers()
96+
register_parsers(subparsers)
97+
98+
# When
99+
args = parser.parse_args(["frameworks"])
100+
101+
# Then
102+
assert args.all is False
103+
104+
def test_frameworks_command_has_recommend_argument(self):
105+
"""Test that frameworks command accepts --recommend argument."""
106+
# Given
107+
parser = ArgumentParser()
108+
subparsers = parser.add_subparsers()
109+
register_parsers(subparsers)
110+
111+
# When
112+
args = parser.parse_args(["frameworks", "--recommend", "testing"])
113+
114+
# Then
115+
assert args.recommend == "testing"
116+
117+
def test_frameworks_recommend_is_optional(self):
118+
"""Test that --recommend is optional."""
119+
# Given
120+
parser = ArgumentParser()
121+
subparsers = parser.add_subparsers()
122+
register_parsers(subparsers)
123+
124+
# When
125+
args = parser.parse_args(["frameworks"])
126+
127+
# Then
128+
assert args.recommend is None
129+
130+
def test_frameworks_command_has_json_flag(self):
131+
"""Test that frameworks command accepts --json flag."""
132+
# Given
133+
parser = ArgumentParser()
134+
subparsers = parser.add_subparsers()
135+
register_parsers(subparsers)
136+
137+
# When
138+
args = parser.parse_args(["frameworks", "--json"])
139+
140+
# Then
141+
assert args.json is True
142+
143+
def test_frameworks_json_flag_defaults_to_false(self):
144+
"""Test that --json defaults to False."""
145+
# Given
146+
parser = ArgumentParser()
147+
subparsers = parser.add_subparsers()
148+
register_parsers(subparsers)
149+
150+
# When
151+
args = parser.parse_args(["frameworks"])
152+
153+
# Then
154+
assert args.json is False
155+
156+
def test_frameworks_accepts_multiple_flags(self):
157+
"""Test that frameworks command accepts multiple flags together."""
158+
# Given
159+
parser = ArgumentParser()
160+
subparsers = parser.add_subparsers()
161+
register_parsers(subparsers)
162+
163+
# When
164+
args = parser.parse_args(["frameworks", "--all", "--json", "--recommend", "analysis"])
165+
166+
# Then
167+
assert args.all is True
168+
assert args.json is True
169+
assert args.recommend == "analysis"

0 commit comments

Comments
 (0)