mirror of
				https://github.com/psycopg/psycopg2.git
				synced 2025-10-29 23:07:26 +03:00 
			
		
		
		
	Don't hope to encode stuff in an arbitrary encoding
libpq's PQescapeString will use the same encoding it has seen before in a connection (static_client_encoding). So I think I'll leave this feature here for people who know what is doing, but won't really document it as a feature: it can't really work in a generic way (unless adding some disgusting hack like creating a fake connection with the encoding we want to call PQescapeStringConn instead of PQescapeString).
This commit is contained in:
		
							parent
							
								
									2e8e61b8d4
								
							
						
					
					
						commit
						4a450b63c4
					
				
							
								
								
									
										1
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								NEWS
									
									
									
									
									
								
							|  | @ -26,6 +26,7 @@ What's new in psycopg 2.6.2 | ||||||
| - Report the server response status on errors (such as :ticket:`#281`). | - Report the server response status on errors (such as :ticket:`#281`). | ||||||
| - Raise `!NotSupportedError` on unhandled server response status | - Raise `!NotSupportedError` on unhandled server response status | ||||||
|   (:ticket:`#352`). |   (:ticket:`#352`). | ||||||
|  | - Allow overriding string adapter encoding with no connection (:ticket:`#331`). | ||||||
| - The `~psycopg2.extras.wait_select` callback allows interrupting a | - The `~psycopg2.extras.wait_select` callback allows interrupting a | ||||||
|   long-running query in an interactive shell using :kbd:`Ctrl-C` |   long-running query in an interactive shell using :kbd:`Ctrl-C` | ||||||
|   (:ticket:`#333`). |   (:ticket:`#333`). | ||||||
|  |  | ||||||
|  | @ -157,7 +157,7 @@ class QuotingTestCase(ConnectingTestCase): | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class TestQuotedString(ConnectingTestCase): | class TestQuotedString(ConnectingTestCase): | ||||||
|     def test_encoding(self): |     def test_encoding_from_conn(self): | ||||||
|         q = psycopg2.extensions.QuotedString('hi') |         q = psycopg2.extensions.QuotedString('hi') | ||||||
|         self.assertEqual(q.encoding, 'latin1') |         self.assertEqual(q.encoding, 'latin1') | ||||||
| 
 | 
 | ||||||
|  | @ -191,8 +191,11 @@ class TestStringAdapter(ConnectingTestCase): | ||||||
|         self.assertEqual(a.encoding, 'latin1') |         self.assertEqual(a.encoding, 'latin1') | ||||||
|         self.assertEqual(a.getquoted(), "'hello'") |         self.assertEqual(a.getquoted(), "'hello'") | ||||||
| 
 | 
 | ||||||
|         egrave = u'\xe8' |         # NOTE: we can't really test an encoding different from utf8, because | ||||||
|         self.assertEqual(adapt(egrave).getquoted(), "'\xe8'") |         # when encoding without connection the libpq will use parameters from | ||||||
|  |         # a previous one, so what would happens depends jn the tests run order. | ||||||
|  |         # egrave = u'\xe8' | ||||||
|  |         # self.assertEqual(adapt(egrave).getquoted(), "'\xe8'") | ||||||
| 
 | 
 | ||||||
|     def test_encoding_error(self): |     def test_encoding_error(self): | ||||||
|         from psycopg2.extensions import adapt |         from psycopg2.extensions import adapt | ||||||
|  | @ -201,6 +204,9 @@ class TestStringAdapter(ConnectingTestCase): | ||||||
|         self.assertRaises(UnicodeEncodeError, a.getquoted) |         self.assertRaises(UnicodeEncodeError, a.getquoted) | ||||||
| 
 | 
 | ||||||
|     def test_set_encoding(self): |     def test_set_encoding(self): | ||||||
|  |         # Note: this works-ish mostly in case when the standard db connection | ||||||
|  |         # we test with is utf8, otherwise the encoding chosen by PQescapeString | ||||||
|  |         # may give bad results. | ||||||
|         from psycopg2.extensions import adapt |         from psycopg2.extensions import adapt | ||||||
|         snowman = u"\u2603" |         snowman = u"\u2603" | ||||||
|         a = adapt(snowman) |         a = adapt(snowman) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user