[Supervisor-checkins] r908 - in supervisor/trunk/src/supervisor: . tests

Mike Naberezny mike at maintainable.com
Sat Oct 24 22:32:19 EDT 2009


Author: Mike Naberezny <mike at maintainable.com>
Date: Sat Oct 24 22:32:18 2009
New Revision: 908

Log:
Show a nicer error message for domain socket users also.

Modified:
   supervisor/trunk/src/supervisor/supervisorctl.py
   supervisor/trunk/src/supervisor/tests/test_supervisorctl.py

Modified: supervisor/trunk/src/supervisor/supervisorctl.py
==============================================================================
--- supervisor/trunk/src/supervisor/supervisorctl.py	(original)
+++ supervisor/trunk/src/supervisor/supervisorctl.py	Sat Oct 24 22:32:18 2009
@@ -227,6 +227,10 @@
             if why[0] == errno.ECONNREFUSED:
                 self.output('%s refused connection' % self.options.serverurl)
                 return False
+            elif why[0] == errno.ENOENT:
+                msg = 'ERROR: %s no such file (already shut down?)'
+                self.output(msg % self.options.serverurl)
+                return False
             raise
         return True
 
@@ -771,6 +775,9 @@
                 if e[0] == errno.ECONNREFUSED:
                     msg = 'ERROR: %s refused connection (already shut down?)'
                     self.ctl.output(msg % self.ctl.options.serverurl)
+                elif e[0] == errno.ENOENT:
+                    msg = 'ERROR: %s no such file (already shut down?)'
+                    self.ctl.output(msg % self.ctl.options.serverurl)
                 else:
                     raise
             else:

Modified: supervisor/trunk/src/supervisor/tests/test_supervisorctl.py
==============================================================================
--- supervisor/trunk/src/supervisor/tests/test_supervisorctl.py	(original)
+++ supervisor/trunk/src/supervisor/tests/test_supervisorctl.py	Sat Oct 24 22:32:18 2009
@@ -540,9 +540,24 @@
 
         result = plugin.do_shutdown('')
         self.assertEqual(result, None)
-        self.assertEqual(plugin.ctl.stdout.getvalue(), 
-                         'ERROR: http://localhost:92491 refused'
-                         ' connection (already shut down?)\n')
+
+        output = plugin.ctl.stdout.getvalue()
+        self.assertTrue('refused connection (already shut down?)' in output)
+
+    def test_shutdown_catches_socket_error_ENOENT(self):
+        plugin = self._makeOne()
+        import socket
+        import errno
+        
+        def raise_fault(*arg, **kw):     
+            raise socket.error(errno.ENOENT, 'no file')
+        plugin.ctl.options._server.supervisor.shutdown = raise_fault
+
+        result = plugin.do_shutdown('')
+        self.assertEqual(result, None)
+        
+        output = plugin.ctl.stdout.getvalue() 
+        self.assertTrue('no such file (already shut down?)' in output)        
 
     def test_shutdown_reraises_other_socket_errors(self):
         plugin = self._makeOne()


More information about the Supervisor-checkins mailing list