Skip to content

Commit 57d89f0

Browse files
committed
add unit test for OAuth create
Signed-off-by: Kevin <[email protected]>
1 parent 104f77c commit 57d89f0

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/codeflare_sdk/utils/openshift_oauth.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
from kubernetes import client
88

99

10+
def _get_api_host(api_client: client.ApiClient):
11+
return parse_url(api_client.configuration.host).host
12+
1013
def create_openshift_oauth_objects(cluster_name, namespace):
1114
config_check()
1215
api_client = api_config_handler()
@@ -15,7 +18,7 @@ def create_openshift_oauth_objects(cluster_name, namespace):
1518
tls_secret_name = _gen_tls_secret_name(cluster_name)
1619
service_name = f"{cluster_name}-oauth"
1720
port_name = "oauth-proxy"
18-
host = parse_url(api_client.configuration.host).host
21+
host = _get_api_host(api_client)
1922

2023
# replace "^api" with the expected host
2124
host = f"{gen_dashboard_route_name(cluster_name)}-{namespace}.apps" + host.lstrip(

tests/unit_test.py

+25
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
config_check,
4343
api_config_handler,
4444
)
45+
from codeflare_sdk.utils.openshift_oauth import create_openshift_oauth_objects
4546
from codeflare_sdk.utils.pretty_print import (
4647
print_no_resources_found,
4748
print_app_wrappers_status,
@@ -2294,6 +2295,30 @@ def test_export_env():
22942295
)
22952296

22962297

2298+
# TODO add checks to make sure that when calling generate oauth objects that the fields that are expected to match do
2299+
def test_create_openshift_oauth(mocker: MockerFixture):
2300+
create_namespaced_service_account = MagicMock()
2301+
create_cluster_role_binding = MagicMock()
2302+
create_namespaced_service = MagicMock()
2303+
create_namespaced_ingress = MagicMock()
2304+
mocker.patch.object(client.CoreV1Api, "create_namespaced_service_account", create_namespaced_service_account)
2305+
mocker.patch.object(client.RbacAuthorizationV1Api, "create_cluster_role_binding", create_cluster_role_binding)
2306+
mocker.patch.object(client.CoreV1Api, "create_namespaced_service", create_namespaced_service)
2307+
mocker.patch.object(client.NetworkingV1Api, "create_namespaced_ingress", create_namespaced_ingress)
2308+
mocker.patch("codeflare_sdk.utils.openshift_oauth._get_api_host", return_value="foo.com")
2309+
create_openshift_oauth_objects("foo", "bar")
2310+
create_ns_sa_args = create_namespaced_service_account.call_args
2311+
create_crb_args = create_cluster_role_binding.call_args
2312+
create_ns_serv_args = create_namespaced_service.call_args
2313+
create_ns_ingress_args = create_namespaced_ingress.call_args
2314+
assert create_ns_sa_args.kwargs["namespace"] == create_ns_serv_args.kwargs["namespace"]
2315+
assert create_ns_serv_args.kwargs["namespace"] == create_ns_ingress_args.kwargs["namespace"]
2316+
assert isinstance(create_ns_sa_args.kwargs["body"], client.V1ServiceAccount)
2317+
assert isinstance(create_crb_args.kwargs["body"], client.V1ClusterRoleBinding)
2318+
assert isinstance(create_ns_serv_args.kwargs["body"], client.V1Service)
2319+
assert isinstance(create_ns_ingress_args.kwargs["body"], client.V1Ingress)
2320+
assert create_ns_serv_args.kwargs["body"].spec.ports[0].name == create_ns_ingress_args.kwargs["body"].spec.rules[0].http.paths[0].backend.service.port.name
2321+
22972322
# Make sure to always keep this function last
22982323
def test_cleanup():
22992324
os.remove("unit-test-cluster.yaml")

0 commit comments

Comments
 (0)