mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	Given that ord() of a bytes object of length 1 is defined, it should
never return a negative number.
This commit is contained in:
		
							parent
							
								
									2b08b38dea
								
							
						
					
					
						commit
						f9e91c9c58
					
				
					 3 changed files with 15 additions and 1 deletions
				
			
		|  | @ -1383,6 +1383,15 @@ def test_ord(self): | ||||||
|         self.assertEqual(ord(' '), 32) |         self.assertEqual(ord(' '), 32) | ||||||
|         self.assertEqual(ord('A'), 65) |         self.assertEqual(ord('A'), 65) | ||||||
|         self.assertEqual(ord('a'), 97) |         self.assertEqual(ord('a'), 97) | ||||||
|  |         self.assertEqual(ord('\x80'), 128) | ||||||
|  |         self.assertEqual(ord('\xff'), 255) | ||||||
|  | 
 | ||||||
|  |         self.assertEqual(ord(b' '), 32) | ||||||
|  |         self.assertEqual(ord(b'A'), 65) | ||||||
|  |         self.assertEqual(ord(b'a'), 97) | ||||||
|  |         self.assertEqual(ord(b'\x80'), 128) | ||||||
|  |         self.assertEqual(ord(b'\xff'), 255) | ||||||
|  | 
 | ||||||
|         if have_unicode: |         if have_unicode: | ||||||
|             self.assertEqual(ord(chr(sys.maxunicode)), sys.maxunicode) |             self.assertEqual(ord(chr(sys.maxunicode)), sys.maxunicode) | ||||||
|         self.assertRaises(TypeError, ord, 42) |         self.assertRaises(TypeError, ord, 42) | ||||||
|  |  | ||||||
|  | @ -671,6 +671,11 @@ def test_rstrip(self): | ||||||
|         self.assertEqual(b.rstrip(b'im'), b'mississipp') |         self.assertEqual(b.rstrip(b'im'), b'mississipp') | ||||||
|         self.assertEqual(b.rstrip(b'pim'), b'mississ') |         self.assertEqual(b.rstrip(b'pim'), b'mississ') | ||||||
| 
 | 
 | ||||||
|  |     def test_ord(self): | ||||||
|  |         b = b'\0A\x7f\x80\xff' | ||||||
|  |         self.assertEqual([ord(b[i:i+1]) for i in range(len(b))], | ||||||
|  |                          [0, 65, 127, 128, 255]) | ||||||
|  | 
 | ||||||
|     # Optimizations: |     # Optimizations: | ||||||
|     # __iter__? (optimization) |     # __iter__? (optimization) | ||||||
|     # __reversed__? (optimization) |     # __reversed__? (optimization) | ||||||
|  |  | ||||||
|  | @ -1482,7 +1482,7 @@ builtin_ord(PyObject *self, PyObject* obj) | ||||||
| 		/* XXX Hopefully this is temporary */ | 		/* XXX Hopefully this is temporary */ | ||||||
| 		size = PyBytes_GET_SIZE(obj); | 		size = PyBytes_GET_SIZE(obj); | ||||||
| 		if (size == 1) { | 		if (size == 1) { | ||||||
| 			ord = (long)*PyBytes_AS_STRING(obj); | 			ord = (long)((unsigned char)*PyBytes_AS_STRING(obj)); | ||||||
| 			return PyInt_FromLong(ord); | 			return PyInt_FromLong(ord); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Guido van Rossum
						Guido van Rossum