error: add structured exception for EOF at prompt
authorSiddharth Agarwal <sid0@fb.com>
Tue, 10 Nov 2015 00:46:45 -0800
changeset 26896 5e46123e6c35
parent 26895 fc41f9ffd4a4
child 26897 da1c706c9a35
error: add structured exception for EOF at prompt We'll catch this exception for promptchoice queries to provide better error handling.
mercurial/error.py
mercurial/ui.py
--- a/mercurial/error.py	Mon Nov 09 22:37:32 2015 -0800
+++ b/mercurial/error.py	Tue Nov 10 00:46:45 2015 -0800
@@ -72,6 +72,12 @@
 class UpdateAbort(Abort):
     """Raised when an update is aborted for destination issue"""
 
+class ResponseExpected(Abort):
+    """Raised when an EOF is received for a prompt"""
+    def __init__(self):
+        from .i18n import _
+        Abort.__init__(self, _('response expected'))
+
 class OutOfBandError(Exception):
     """Exception raised when a remote repo reports failure"""
 
--- a/mercurial/ui.py	Mon Nov 09 22:37:32 2015 -0800
+++ b/mercurial/ui.py	Tue Nov 10 00:46:45 2015 -0800
@@ -756,7 +756,7 @@
                 self.write(r, "\n")
             return r
         except EOFError:
-            raise error.Abort(_('response expected'))
+            raise error.ResponseExpected()
 
     @staticmethod
     def extractchoices(prompt):
@@ -803,7 +803,7 @@
             else:
                 return getpass.getpass('')
         except EOFError:
-            raise error.Abort(_('response expected'))
+            raise error.ResponseExpected()
     def status(self, *msg, **opts):
         '''write status message to output (if ui.quiet is False)