diff --git a/passbook/providers/proxy/tests.py b/passbook/providers/proxy/tests.py index 6168e9e5f..810986e0a 100644 --- a/passbook/providers/proxy/tests.py +++ b/passbook/providers/proxy/tests.py @@ -1,17 +1,23 @@ """Test Controllers""" +from os import environ +from unittest import skipUnless + import yaml from django.test import TestCase from passbook.flows.models import Flow from passbook.outposts.models import Outpost, OutpostDeploymentType, OutpostType -from passbook.providers.proxy.controllers.kubernetes import KubernetesController +from passbook.providers.proxy.controllers.kubernetes import ( + ProxyKubernetesController, +) from passbook.providers.proxy.models import ProxyProvider +@skipUnless("PB_TEST_K8S" in environ, "Kubernetes test cluster required") class TestControllers(TestCase): """Test Controllers""" - def test_kubernetes_controller(self): + def test_kubernetes_controller_static(self): """Test Kubernetes Controller""" provider: ProxyProvider = ProxyProvider.objects.create( name="test", @@ -22,11 +28,30 @@ class TestControllers(TestCase): outpost: Outpost = Outpost.objects.create( name="test", type=OutpostType.PROXY, - deployment_type=OutpostDeploymentType.CUSTOM, + deployment_type=OutpostDeploymentType.KUBERNETES, ) outpost.providers.add(provider) outpost.save() - controller = KubernetesController(outpost.pk) + controller = ProxyKubernetesController(outpost.pk) manifest = controller.get_static_deployment() self.assertEqual(len(list(yaml.load_all(manifest, Loader=yaml.SafeLoader))), 3) + + def test_kubernetes_controller_deploy(self): + """Test Kubernetes Controller""" + provider: ProxyProvider = ProxyProvider.objects.create( + name="test", + internal_host="http://localhost", + external_host="http://localhost", + authorization_flow=Flow.objects.first(), + ) + outpost: Outpost = Outpost.objects.create( + name="test", + type=OutpostType.PROXY, + deployment_type=OutpostDeploymentType.KUBERNETES, + ) + outpost.providers.add(provider) + outpost.save() + + controller = ProxyKubernetesController(outpost.pk) + controller.run()