Fix Issue #1769: Now int('- 1') or int('+ 1') is not allowed
any more.  Thanks Juan Jose Conti.  Also added tests.
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index b10caf5..4cf5916 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -49,7 +49,7 @@
     def write(self, line):
         pass
 
-L = [
+test_conv_no_sign = [
         ('0', 0),
         ('1', 1),
         ('9', 9),
@@ -71,6 +71,28 @@
         (chr(0x200), ValueError),
 ]
 
+test_conv_sign = [
+        ('0', 0),
+        ('1', 1),
+        ('9', 9),
+        ('10', 10),
+        ('99', 99),
+        ('100', 100),
+        ('314', 314),
+        (' 314', ValueError),
+        ('314 ', 314),
+        ('  \t\t  314  \t\t  ', ValueError),
+        (repr(sys.maxsize), sys.maxsize),
+        ('  1x', ValueError),
+        ('  1  ', ValueError),
+        ('  1\02  ', ValueError),
+        ('', ValueError),
+        (' ', ValueError),
+        ('  \t\t  ', ValueError),
+        (str(b'\u0663\u0661\u0664 ','raw-unicode-escape'), 314),
+        (chr(0x200), ValueError),
+]
+
 class TestFailingBool:
     def __bool__(self):
         raise RuntimeError
@@ -641,8 +663,18 @@
         # Different base:
         self.assertEqual(int("10",16), 16)
         # Test conversion from strings and various anomalies
-        for s, v in L:
-            for sign in "", "+", "-":
+        # Testing with no sign at front
+        for s, v in test_conv_no_sign:
+            for prefix in "", " ", "\t", "  \t\t  ":
+                ss = prefix + s
+                vv = v
+                try:
+                    self.assertEqual(int(ss), vv)
+                except v:
+                    pass
+        # No whitespaces allowed between + or - sign and the number
+        for s, v in test_conv_sign:
+            for sign in "+", "-":
                 for prefix in "", " ", "\t", "  \t\t  ":
                     ss = prefix + sign + s
                     vv = v
diff --git a/Misc/NEWS b/Misc/NEWS
index c59efa1..cb6288a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@
 Core and Builtins
 -----------------
 
+- Issue #1769: Now int("- 1") is not allowed any more.
+
 - Object/longobject.c: long(float('nan')) raises an OverflowError instead
   of returning 0.
 
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 4b7eee0..18f158a 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -1685,8 +1685,6 @@
 		++str;
 		sign = -1;
 	}
-	while (*str != '\0' && isspace(Py_CHARMASK(*str)))
-		str++;
 	if (base == 0) {
 		if (str[0] != '0')
 			base = 10;