mirror of
				https://github.com/psycopg/psycopg2.git
				synced 2025-10-31 15:57:31 +03:00 
			
		
		
		
	Merge branch 'fix-679'
This commit is contained in:
		
						commit
						90b26c3e23
					
				
							
								
								
									
										1
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								NEWS
									
									
									
									
									
								
							|  | @ -20,6 +20,7 @@ What's new in psycopg 2.7.5 | |||
| - Fixed building on Solaris 11 and derivatives such as SmartOS and illumos | ||||
|   (:ticket:`#677`). | ||||
| - Maybe fixed building on MSYS2 (as reported in :ticket:`#658`). | ||||
| - Allow string subclasses in connection and other places (:ticket:`#679`). | ||||
| 
 | ||||
| 
 | ||||
| What's new in psycopg 2.7.4 | ||||
|  |  | |||
|  | @ -168,11 +168,11 @@ psycopg_ensure_bytes(PyObject *obj) | |||
|     PyObject *rv = NULL; | ||||
|     if (!obj) { return NULL; } | ||||
| 
 | ||||
|     if (PyUnicode_CheckExact(obj)) { | ||||
|     if (PyUnicode_Check(obj)) { | ||||
|         rv = PyUnicode_AsUTF8String(obj); | ||||
|         Py_DECREF(obj); | ||||
|     } | ||||
|     else if (Bytes_CheckExact(obj)) { | ||||
|     else if (Bytes_Check(obj)) { | ||||
|         rv = obj; | ||||
|     } | ||||
|     else { | ||||
|  |  | |||
|  | @ -246,6 +246,13 @@ class ConnectionTests(ConnectingTestCase): | |||
|             else: | ||||
|                 del os.environ['PGCLIENTENCODING'] | ||||
| 
 | ||||
|     def test_connect_no_string(self): | ||||
|         class MyString(str): | ||||
|             pass | ||||
| 
 | ||||
|         conn = psycopg2.connect(MyString(dsn)) | ||||
|         conn.close() | ||||
| 
 | ||||
|     def test_weakref(self): | ||||
|         from weakref import ref | ||||
|         import gc | ||||
|  | @ -400,6 +407,13 @@ class ParseDsnTestCase(ConnectingTestCase): | |||
|         self.assertRaises(TypeError, ext.parse_dsn, None) | ||||
|         self.assertRaises(TypeError, ext.parse_dsn, 42) | ||||
| 
 | ||||
|     def test_str_subclass(self): | ||||
|         class MyString(str): | ||||
|             pass | ||||
| 
 | ||||
|         res = ext.parse_dsn(MyString("dbname=test")) | ||||
|         self.assertEqual(res, {'dbname': 'test'}) | ||||
| 
 | ||||
| 
 | ||||
| class MakeDsnTestCase(ConnectingTestCase): | ||||
|     def test_empty_arguments(self): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user