diff options
| author | msg <msg@clinc.com> | 2019-04-01 19:34:11 -0400 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-04-04 10:07:57 +0200 |
| commit | 1279fb4a00c23ab0b9aeff8dd205661d4e9a8110 (patch) | |
| tree | d90943ac551965743333d2bd043a2950905c2e18 | |
| parent | 429502c3769d5a108b7aaadb458b458bbd59900e (diff) | |
[2.2.x] Fixed #30307 -- Fixed incorrect quoting of database user password when using dbshell on Oracle.
Regression in acfc650f2a6e4a79e80237eabfa923ea3a05d709.
Backport of 755673e1bca7edb6bee7a958f40d9ae54d85d44c from master
| -rw-r--r-- | django/db/backends/oracle/base.py | 2 | ||||
| -rw-r--r-- | docs/releases/2.2.1.txt | 4 | ||||
| -rw-r--r-- | tests/backends/oracle/tests.py | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index 977ca69364..98417c5384 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -213,7 +213,7 @@ class DatabaseWrapper(BaseDatabaseWrapper): return settings_dict['NAME'] def _connect_string(self): - return '%s/\\"%s\\"@%s' % (self.settings_dict['USER'], self.settings_dict['PASSWORD'], self._dsn()) + return '%s/"%s"@%s' % (self.settings_dict['USER'], self.settings_dict['PASSWORD'], self._dsn()) def get_connection_params(self): conn_params = self.settings_dict['OPTIONS'].copy() diff --git a/docs/releases/2.2.1.txt b/docs/releases/2.2.1.txt index 6710ad63cf..fb26e39a25 100644 --- a/docs/releases/2.2.1.txt +++ b/docs/releases/2.2.1.txt @@ -9,4 +9,6 @@ Django 2.2.1 fixes several bugs in 2.2. Bugfixes ======== -* ... +* Fixed a regression in Django 2.1 that caused the incorrect quoting of + database user password when using :djadmin:`dbshell` on Oracle + (:ticket:`30307`). diff --git a/tests/backends/oracle/tests.py b/tests/backends/oracle/tests.py index 333d224b3f..6a883cca2d 100644 --- a/tests/backends/oracle/tests.py +++ b/tests/backends/oracle/tests.py @@ -88,7 +88,7 @@ class TransactionalTests(TransactionTestCase): old_password = connection.settings_dict['PASSWORD'] connection.settings_dict['PASSWORD'] = 'p@ssword' try: - self.assertIn('/\\"p@ssword\\"@', connection._connect_string()) + self.assertIn('/"p@ssword"@', connection._connect_string()) with self.assertRaises(DatabaseError) as context: connection.cursor() # Database exception: "ORA-01017: invalid username/password" is |
