Skip to content

Commit 9f944cd

Browse files
committed
Add basic test for pki-server CLI
The mandatory positional arguments for pki-server subcommands have been changed to become optional such that the --help option can be parsed properly. A new test has been added to check pki-server help messages.
1 parent 0d63e48 commit 9f944cd

18 files changed

Lines changed: 712 additions & 93 deletions

File tree

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
name: Basic PKI Server CLI
2+
# https://github.com/dogtagpki/pki/wiki/PKI-Server-CLI
3+
4+
on: workflow_call
5+
6+
env:
7+
DS_IMAGE: ${{ vars.DS_IMAGE || 'quay.io/389ds/dirsrv' }}
8+
9+
jobs:
10+
test:
11+
name: Test
12+
runs-on: ubuntu-latest
13+
env:
14+
SHARED: /tmp/workdir/pki
15+
steps:
16+
- name: Clone repository
17+
uses: actions/checkout@v4
18+
19+
- name: Retrieve PKI images
20+
uses: actions/cache@v4
21+
with:
22+
key: pki-images-${{ github.sha }}
23+
path: pki-images.tar
24+
25+
- name: Load PKI images
26+
run: docker load --input pki-images.tar
27+
28+
- name: Set up runner container
29+
run: |
30+
tests/bin/runner-init.sh \
31+
--hostname=pki.example.com \
32+
pki
33+
34+
- name: Check pki-server CLI help message
35+
run: |
36+
docker exec pki pki-server
37+
docker exec pki pki-server --help
38+
39+
- name: Check pki-server CLI version
40+
run: |
41+
docker exec pki pki-server --version
42+
43+
- name: Check pki-server CLI with wrong option
44+
run: |
45+
docker exec pki pki-server --wrong \
46+
> >(tee stdout) 2> >(tee stderr >&2) || true
47+
48+
sed -n \
49+
-e '/^pki-server:/p' \
50+
stderr > actual
51+
52+
cat > expected << EOF
53+
pki-server: error: unrecognized arguments: --wrong
54+
EOF
55+
56+
diff expected actual
57+
58+
- name: Check pki-server CLI with wrong sub-command
59+
run: |
60+
docker exec pki pki-server wrong \
61+
> >(tee stdout) 2> >(tee stderr >&2) || true
62+
63+
cat > expected << EOF
64+
ERROR: Invalid module "wrong".
65+
EOF
66+
67+
diff expected stderr
68+
69+
- name: Check pki-server instance help messages
70+
run: |
71+
docker exec pki pki-server instance-find --help
72+
docker exec pki pki-server instance-show --help
73+
74+
- name: Check pki-server password help messages
75+
run: |
76+
docker exec pki pki-server password-find --help
77+
docker exec pki pki-server password-set --help
78+
docker exec pki pki-server password-unset --help
79+
80+
- name: Check pki-server cert help messages
81+
run: |
82+
docker exec pki pki-server cert-find --help
83+
docker exec pki pki-server cert-show --help
84+
docker exec pki pki-server cert-validate --help
85+
docker exec pki pki-server cert-update --help
86+
docker exec pki pki-server cert-request --help
87+
docker exec pki pki-server cert-create --help
88+
docker exec pki pki-server cert-import --help
89+
docker exec pki pki-server cert-export --help
90+
docker exec pki pki-server cert-del --help
91+
docker exec pki pki-server cert-fix --help
92+
93+
- name: Check pki-server http-connector help messages
94+
run: |
95+
docker exec pki pki-server http-connector-find --help
96+
docker exec pki pki-server http-connector-show --help
97+
docker exec pki pki-server http-connector-add --help
98+
docker exec pki pki-server http-connector-mod --help
99+
docker exec pki pki-server http-connector-del --help
100+
101+
- name: Check pki-server http-connector-host help messages
102+
run: |
103+
docker exec pki pki-server http-connector-host-find --help
104+
docker exec pki pki-server http-connector-host-show --help
105+
docker exec pki pki-server http-connector-host-add --help
106+
docker exec pki pki-server http-connector-host-mod --help
107+
docker exec pki pki-server http-connector-host-del --help
108+
109+
- name: Check pki-server http-connector-cert help messages
110+
run: |
111+
docker exec pki pki-server http-connector-cert-find --help
112+
docker exec pki pki-server http-connector-cert-add --help
113+
docker exec pki pki-server http-connector-cert-del --help
114+
115+
- name: Check pki-server webapp help messages
116+
run: |
117+
docker exec pki pki-server webapp-find --help
118+
docker exec pki pki-server webapp-show --help
119+
docker exec pki pki-server webapp-deploy --help
120+
docker exec pki pki-server webapp-undeploy --help
121+
122+
- name: Check pki-server subsystem help messages
123+
run: |
124+
docker exec pki pki-server subsystem-find --help
125+
docker exec pki pki-server subsystem-show --help
126+
docker exec pki pki-server subsystem-enable --help
127+
docker exec pki pki-server subsystem-disable --help
128+
129+
- name: Check pki-server sd help messages
130+
run: |
131+
docker exec pki pki-server sd-create --help
132+
133+
- name: Check pki-server sd-subsystem help messages
134+
run: |
135+
docker exec pki pki-server sd-subsystem-find --help
136+
docker exec pki pki-server sd-subsystem-add --help
137+
docker exec pki pki-server sd-subsystem-del --help
138+
139+
- name: Check pki-server ca-config help messages
140+
run: |
141+
docker exec pki pki-server ca-config-find --help
142+
docker exec pki pki-server ca-config-show --help
143+
docker exec pki pki-server ca-config-set --help
144+
docker exec pki pki-server ca-config-unset --help
145+
146+
- name: Check pki-server ca-user help messages
147+
run: |
148+
docker exec pki pki-server ca-user-find --help
149+
docker exec pki pki-server ca-user-show --help
150+
docker exec pki pki-server ca-user-add --help
151+
docker exec pki pki-server ca-user-mod --help
152+
docker exec pki pki-server ca-user-del --help
153+
154+
- name: Check pki-server ca-user-cert help messages
155+
run: |
156+
docker exec pki pki-server ca-user-cert-find --help
157+
docker exec pki pki-server ca-user-cert-add --help
158+
docker exec pki pki-server ca-user-cert-del --help
159+
160+
- name: Check pki-server ca-user-role help messages
161+
run: |
162+
docker exec pki pki-server ca-user-role-find --help
163+
docker exec pki pki-server ca-user-role-add --help
164+
docker exec pki pki-server ca-user-role-del --help
165+
166+
- name: Check pki-server ca-group help messages
167+
run: |
168+
docker exec pki pki-server ca-group-find --help
169+
170+
- name: Check pki-server ca-group-member help messages
171+
run: |
172+
docker exec pki pki-server ca-group-member-find --help
173+
docker exec pki pki-server ca-group-member-add --help
174+
docker exec pki pki-server ca-group-member-del --help
175+
176+
- name: Check pki-server ca-id-generator help messages
177+
run: |
178+
docker exec pki pki-server ca-id-generator-show --help
179+
docker exec pki pki-server ca-id-generator-update --help
180+
181+
- name: Check pki-server ca-db-access help messages
182+
run: |
183+
docker exec pki pki-server ca-db-access-grant --help
184+
docker exec pki pki-server ca-db-access-revoke --help
185+
186+
- name: Check pki-server ca-audit-config help messages
187+
run: |
188+
docker exec pki pki-server ca-audit-config-show --help
189+
docker exec pki pki-server ca-audit-config-mod --help
190+
191+
- name: Check pki-server ca-audit-event help messages
192+
run: |
193+
docker exec pki pki-server ca-audit-event-find --help
194+
docker exec pki pki-server ca-audit-event-show --help
195+
docker exec pki pki-server ca-audit-event-enable --help
196+
docker exec pki pki-server ca-audit-event-disable --help
197+
docker exec pki pki-server ca-audit-event-update --help
198+
199+
- name: Check pki-server ca-audit-file help messages
200+
run: |
201+
docker exec pki pki-server ca-audit-file-find --help
202+
docker exec pki pki-server ca-audit-file-verify --help

.github/workflows/tools-tests.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ jobs:
6363
needs: build
6464
uses: ./.github/workflows/pki-pkcs12-test.yml
6565

66+
pki-server-basic-test:
67+
name: Basic PKI Server CLI
68+
needs: build
69+
uses: ./.github/workflows/pki-server-basic-test.yml
70+
6671
rpminspect-test:
6772
name: rpminspect
6873
needs: build

base/server/python/pki/server/cli/audit.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,9 @@ def create_parser(self, subparsers=None):
443443
self.parser.add_argument(
444444
'--help',
445445
action='store_true')
446-
self.parser.add_argument('event_name')
446+
self.parser.add_argument(
447+
'event_name',
448+
nargs='?')
447449

448450
def print_help(self):
449451
print('Usage: pki-server %s-audit-event-show [OPTIONS] <event name>'
@@ -473,6 +475,9 @@ def execute(self, argv, args=None):
473475
instance_name = args.instance
474476
event_name = args.event_name
475477

478+
if event_name is None:
479+
raise pki.cli.CLIException('Missing event name')
480+
476481
instance = pki.server.PKIServerFactory.create(instance_name)
477482
if not instance.exists():
478483
logger.error('Invalid instance %s.', instance_name)
@@ -518,7 +523,9 @@ def create_parser(self, subparsers=None):
518523
self.parser.add_argument(
519524
'--help',
520525
action='store_true')
521-
self.parser.add_argument('event_name')
526+
self.parser.add_argument(
527+
'event_name',
528+
nargs='?')
522529

523530
def print_help(self):
524531
print('Usage: pki-server %s-audit-event-enable [OPTIONS] <event_name>'
@@ -548,6 +555,9 @@ def execute(self, argv, args=None):
548555
instance_name = args.instance
549556
event_name = args.event_name
550557

558+
if event_name is None:
559+
raise pki.cli.CLIException('Missing event name')
560+
551561
instance = pki.server.PKIServerFactory.create(instance_name)
552562
if not instance.exists():
553563
logger.error('Invalid instance %s.', instance_name)
@@ -609,7 +619,9 @@ def create_parser(self, subparsers=None):
609619
self.parser.add_argument(
610620
'--help',
611621
action='store_true')
612-
self.parser.add_argument('event_name')
622+
self.parser.add_argument(
623+
'event_name',
624+
nargs='?')
613625

614626
def print_help(self):
615627
print('Usage: pki-server %s-audit-event-update <event_name> '
@@ -641,6 +653,9 @@ def execute(self, argv, args=None):
641653
event_filter = args.event_filter
642654
event_name = args.event_name
643655

656+
if event_name is None:
657+
raise pki.cli.CLIException('Missing event name')
658+
644659
instance = pki.server.PKIServerFactory.create(instance_name)
645660
if not instance.exists():
646661
logger.error('Invalid instance %s.', instance_name)
@@ -688,7 +703,9 @@ def create_parser(self, subparsers=None):
688703
self.parser.add_argument(
689704
'--help',
690705
action='store_true')
691-
self.parser.add_argument('event_name')
706+
self.parser.add_argument(
707+
'event_name',
708+
nargs='?')
692709

693710
def print_help(self):
694711
print('Usage: pki-server %s-audit-event-disable [OPTIONS] <event_name>'
@@ -718,6 +735,9 @@ def execute(self, argv, args=None):
718735
instance_name = args.instance
719736
event_name = args.event_name
720737

738+
if event_name is None:
739+
raise pki.cli.CLIException('Missing event name')
740+
721741
instance = pki.server.PKIServerFactory.create(instance_name)
722742
if not instance.exists():
723743
logger.error('Invalid instance %s.', instance_name)

0 commit comments

Comments
 (0)