From 49e741e61ddec46cdbebeb778a9df89fe143ec97 Mon Sep 17 00:00:00 2001 From: Kris Nova Date: Tue, 11 Apr 2017 13:46:42 -0600 Subject: [PATCH] chore(ingress): Adding unit tests Adding unit tests for ingress Non breaking change --- rootfs/scheduler/mock.py | 2 +- rootfs/scheduler/resources/ingress.py | 2 +- rootfs/scheduler/tests/test_ingress.py | 52 ++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 rootfs/scheduler/tests/test_ingress.py diff --git a/rootfs/scheduler/mock.py b/rootfs/scheduler/mock.py index 4bd2844ad..a97cb5772 100644 --- a/rootfs/scheduler/mock.py +++ b/rootfs/scheduler/mock.py @@ -80,7 +80,7 @@ def _acquire(self): resources = [ 'namespaces', 'nodes', 'pods', 'replicationcontrollers', 'secrets', 'services', 'events', 'deployments', 'replicasets', - 'horizontalpodautoscalers', 'scale', 'resourcequotas' + 'horizontalpodautoscalers', 'scale', 'resourcequotas', 'ingresses' ] diff --git a/rootfs/scheduler/resources/ingress.py b/rootfs/scheduler/resources/ingress.py index 6db0aea23..3e2feacbe 100644 --- a/rootfs/scheduler/resources/ingress.py +++ b/rootfs/scheduler/resources/ingress.py @@ -55,7 +55,7 @@ def create(self, ingress, namespace, hostname): return response def delete(self, namespace, ingress): - url = self.api("/namespaces/{}/ingresses/{}", namespace, ingress) + url = "/apis/extensions/v1beta1/namespaces/%s/ingresses/%s" % (namespace, ingress) response = self.http_delete(url) if self.unhealthy(response.status_code): raise KubeHTTPException(response, 'delete Ingress "{}"', namespace) diff --git a/rootfs/scheduler/tests/test_ingress.py b/rootfs/scheduler/tests/test_ingress.py new file mode 100644 index 000000000..54184c5f8 --- /dev/null +++ b/rootfs/scheduler/tests/test_ingress.py @@ -0,0 +1,52 @@ +""" +Unit tests for the Deis ingress module. + +Run the tests with './manage.py test ingress' +""" +from scheduler import KubeHTTPException +from scheduler.tests import TestCase + + +class IngressTest(TestCase): + """Tests scheduler ingress calls""" + + def test_create_ingress(self): + # Ingress assumes that the namespace and ingress name are always the same + self.scheduler.ns.create("test-ingress") + self.scheduler.ingress.create("test-ingress", "test-ingress", "test-ingress") + + def test_get_ingresses(self): + response = self.scheduler.ingress.get() + data = response.json() + self.assertEqual(response.status_code, 200, data) + self.assertIn('items', data) + + def test_get_ingress(self): + with self.assertRaises( + KubeHTTPException, + msg="failed to get Ingress doesnotexist: 404 Not Found" + ): + self.scheduler.ingress.get('doesnotexist') + + self.scheduler.ns.create("test-ingress-create") + self.scheduler.ingress.create("test-ingress-create", "test-ingress-create", "test-ingress-create") + response = self.scheduler.ingress.get("test-ingress-create") + data = response.json() + + self.assertEqual(response.status_code, 200, data) + self.assertEqual(data['apiVersion'], 'extensions/v1beta1') + self.assertEqual(data['kind'], 'Ingress') + + def test_delete_failure(self): + # test failure + with self.assertRaises( + KubeHTTPException, + msg="failed to delete Ingress doesnotexist: 404 Not Found" + ): + self.scheduler.ns.delete('doesnotexist') + + def test_delete_namespace(self): + self.scheduler.ns.create("test-ingress-delete") + self.scheduler.ingress.create("test-ingress-delete", "test-ingress-delete", "test-ingress-delete") + response = self.scheduler.ingress.delete("test-ingress-delete", "test-ingress-delete") + self.assertEqual(response.status_code, 200, response.json())