|
1 | | -import argparse |
2 | | - |
3 | 1 | from scim2_client.engines.httpx import SyncSCIMClient |
4 | 2 |
|
5 | 3 | from scim2_tester.checkers import random_url |
@@ -117,61 +115,3 @@ def check_server( |
117 | 115 | results.extend(resource_results) |
118 | 116 |
|
119 | 117 | return results |
120 | | - |
121 | | - |
122 | | -if __name__ == "__main__": |
123 | | - from httpx import Client |
124 | | - from scim2_client.engines.httpx import SyncSCIMClient |
125 | | - |
126 | | - parser = argparse.ArgumentParser(description="SCIM server compliance checker.") |
127 | | - parser.add_argument("host") |
128 | | - parser.add_argument("--token", required=False) |
129 | | - parser.add_argument("--verbose", required=False, action="store_true") |
130 | | - parser.add_argument( |
131 | | - "--include-tags", |
132 | | - nargs="+", |
133 | | - help="Run only checks with these tags", |
134 | | - required=False, |
135 | | - ) |
136 | | - parser.add_argument( |
137 | | - "--exclude-tags", |
138 | | - nargs="+", |
139 | | - help="Skip checks with these tags", |
140 | | - required=False, |
141 | | - ) |
142 | | - parser.add_argument( |
143 | | - "--resource-types", |
144 | | - nargs="+", |
145 | | - help="Filter by resource type names", |
146 | | - required=False, |
147 | | - ) |
148 | | - args = parser.parse_args() |
149 | | - |
150 | | - client = Client( |
151 | | - base_url=args.host, |
152 | | - headers={"Authorization": f"Bearer {args.token}"} if args.token else None, |
153 | | - ) |
154 | | - scim = SyncSCIMClient(client) |
155 | | - scim.discover() # type: ignore[no-untyped-call] |
156 | | - |
157 | | - include_tags: set[str] | None = ( |
158 | | - set(args.include_tags) if args.include_tags else None |
159 | | - ) |
160 | | - exclude_tags: set[str] | None = ( |
161 | | - set(args.exclude_tags) if args.exclude_tags else None |
162 | | - ) |
163 | | - |
164 | | - results = check_server( |
165 | | - scim, |
166 | | - include_tags=include_tags, |
167 | | - exclude_tags=exclude_tags, |
168 | | - resource_types=args.resource_types, |
169 | | - ) |
170 | | - |
171 | | - for result in results: |
172 | | - resource_info = f" [{result.resource_type}]" if result.resource_type else "" |
173 | | - print(f"{result.status.name} {result.title}{resource_info}") |
174 | | - if result.reason: |
175 | | - print(" ", result.reason) |
176 | | - if args.verbose and result.data: |
177 | | - print(" ", result.data) |
0 commit comments