[2.1.x] Fixed #29613 -- Fixed --keepdb on PostgreSQL if the database exists and the user can't create databases.

Regression in e776dd2db6.

Thanks Tim Graham for the review.
Backport of 1a9cbf41a1 from master
This commit is contained in:
Mariusz Felisiak 2018-08-03 10:31:55 +02:00
parent a004350193
commit c706091225
No known key found for this signature in database
GPG key ID: 2EF56372BA48CD1B
3 changed files with 23 additions and 3 deletions

View file

@ -89,7 +89,14 @@ class DatabaseCreationTests(SimpleTestCase):
creation._create_test_db(verbosity=0, autoclobber=False, keepdb=True)
# Simulate test database creation raising unexpected error
with self.patch_test_db_creation(self._execute_raise_permission_denied):
with self.assertRaises(SystemExit):
creation._create_test_db(verbosity=0, autoclobber=False, keepdb=False)
with self.assertRaises(SystemExit):
with mock.patch.object(DatabaseCreation, '_database_exists', return_value=False):
with self.assertRaises(SystemExit):
creation._create_test_db(verbosity=0, autoclobber=False, keepdb=False)
with self.assertRaises(SystemExit):
creation._create_test_db(verbosity=0, autoclobber=False, keepdb=True)
# Simulate test database creation raising "insufficient privileges".
# An error shouldn't appear when keepdb is on and the database already
# exists.
with self.patch_test_db_creation(self._execute_raise_permission_denied):
with mock.patch.object(DatabaseCreation, '_database_exists', return_value=True):
creation._create_test_db(verbosity=0, autoclobber=False, keepdb=True)