From e054b9088594a8f3b18c549ab68fe533fd89fe6a Mon Sep 17 00:00:00 2001 From: David Shrewsbury Date: Thu, 26 Jan 2017 08:22:25 -0500 Subject: [PATCH] Add zuul->np test for invalid node type Also, go ahead and change hard-coded state strings to use those defined in model.py. Change-Id: Ic1bfb1c6ba9dc106d8b58a2664d9ac2248e788d2 --- tests/nodepool/test_nodepool_integration.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tests/nodepool/test_nodepool_integration.py b/tests/nodepool/test_nodepool_integration.py index 95027feb72..881aae784d 100644 --- a/tests/nodepool/test_nodepool_integration.py +++ b/tests/nodepool/test_nodepool_integration.py @@ -60,7 +60,7 @@ class TestNodepoolIntegration(BaseTestCase): request = self.nodepool.requestNodes(None, job) self.waitForRequests() self.assertEqual(len(self.provisioned_requests), 1) - self.assertEqual(request.state, 'fulfilled') + self.assertEqual(request.state, model.STATE_FULFILLED) # Accept the nodes self.nodepool.acceptNodes(request) @@ -68,18 +68,29 @@ class TestNodepoolIntegration(BaseTestCase): for node in nodeset.getNodes(): self.assertIsNotNone(node.lock) - self.assertEqual(node.state, 'ready') + self.assertEqual(node.state, model.STATE_READY) # Mark the nodes in use self.nodepool.useNodeSet(nodeset) for node in nodeset.getNodes(): - self.assertEqual(node.state, 'in-use') + self.assertEqual(node.state, model.STATE_IN_USE) # Return the nodes self.nodepool.returnNodeSet(nodeset) for node in nodeset.getNodes(): self.assertIsNone(node.lock) - self.assertEqual(node.state, 'used') + self.assertEqual(node.state, model.STATE_USED) + + def test_invalid_node_request(self): + # Test requests with an invalid node type fail + nodeset = model.NodeSet() + nodeset.addNode(model.Node('controller', 'invalid-label')) + job = model.Job('testjob') + job.nodeset = nodeset + request = self.nodepool.requestNodes(None, job) + self.waitForRequests() + self.assertEqual(len(self.provisioned_requests), 1) + self.assertEqual(request.state, model.STATE_FAILED) @skip("Disabled until nodepool is ready") def test_node_request_disconnect(self): @@ -97,7 +108,7 @@ class TestNodepoolIntegration(BaseTestCase): self.fake_nodepool.paused = False self.waitForRequests() self.assertEqual(len(self.provisioned_requests), 1) - self.assertEqual(request.state, 'fulfilled') + self.assertEqual(request.state, model.STATE_FULFILLED) @skip("Disabled until nodepool is ready") def test_node_request_canceled(self):