5037: Fix tearDown error handling in PySDK Websockets test.
authorBrett Smith <brett@curoverse.com>
Sun, 1 Feb 2015 16:22:42 +0000 (11:22 -0500)
committerBrett Smith <brett@curoverse.com>
Sun, 1 Feb 2015 16:22:42 +0000 (11:22 -0500)
I accidentally broke this in 51f9e6cb.  That version would crash if
the test failed to assign self.ws.  Refactor to be more robust in that
case.  No issue #.

sdk/python/tests/test_websockets.py

index 61fb54df225cf6c4a299314493d55b4b2134ef93..45dd28a1575f416989b42ee18cc53e35d826f3b4 100644 (file)
@@ -18,22 +18,19 @@ class EventTestBase(object):
         self.assertEqual(human['uuid'], events.get(True, 10)['object_uuid'])
         self.assertTrue(events.empty(), "got more events than expected")
 
+    def tearDown(self):
+        try:
+            self.ws.close()
+        except AttributeError:
+            pass
+        super(EventTestBase, self).tearDown()
+
 
-class WebsocketTest(run_test_server.TestCaseWithServers, EventTestBase):
+class WebsocketTest(EventTestBase, run_test_server.TestCaseWithServers):
     MAIN_SERVER = {'websockets': True}
     WS_TYPE = arvados.events.EventClient
 
-    def tearDown(self):
-        if self.ws:
-            self.ws.close()
-        super(WebsocketTest, self).tearDown()
 
-
-class PollClientTest(run_test_server.TestCaseWithServers, EventTestBase):
+class PollClientTest(EventTestBase, run_test_server.TestCaseWithServers):
     MAIN_SERVER = {}
     WS_TYPE = arvados.events.PollClient
-
-    def tearDown(self):
-        if self.ws:
-            self.ws.close()
-        super(PollClientTest, self).tearDown()