Skip to content
This repository has been archived by the owner on May 6, 2020. It is now read-only.

Commit

Permalink
Merge pull request #1283 from kris-nova/ingress-unit-tests
Browse files Browse the repository at this point in the history
chore(ingress): Adding unit tests
  • Loading branch information
krisnova authored Apr 12, 2017
2 parents 092e8fe + 960e899 commit 465c580
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 2 deletions.
2 changes: 1 addition & 1 deletion rootfs/scheduler/mock.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def _acquire(self):
resources = [
'namespaces', 'nodes', 'pods', 'replicationcontrollers',
'secrets', 'services', 'events', 'deployments', 'replicasets',
'horizontalpodautoscalers', 'scale', 'resourcequotas'
'horizontalpodautoscalers', 'scale', 'resourcequotas', 'ingresses'
]


Expand Down
2 changes: 1 addition & 1 deletion rootfs/scheduler/resources/ingress.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
54 changes: 54 additions & 0 deletions rootfs/scheduler/tests/test_ingress.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
"""
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())

0 comments on commit 465c580

Please sign in to comment.