def run_utils_test(self, db, name): self._load_fixture(db) conn = utils.named_connection(name, db=db) # Ensure it is stored and the settings are identical self.assertTrue(conn.alias in connections) self.assertEqual(conn.settings_dict, connections[db].settings_dict) _db, pid = utils._conn_info(name) # Connection info stored in cache self.assertEqual(db, _db) self.assertIsNotNone(pid) # Execute a query using the specified database. queryset = Employee.objects.using(conn.alias) self.assertEqual(queryset.db, conn.alias) self.assertEqual(queryset.count(), 6) utils.close_connection(name) # Cleaned up self.assertFalse(conn.alias in connections.databases) return conn
def run_cancel_test(self, runner, stopper): t1 = Thread(target=runner, args=(self, self.db, self.name)) t2 = Thread(target=stopper, args=(self, self.db, self.name)) t1.start() # Delay so the query starts running. time.sleep(1) t2.start() # Block until the threads have finished. t1.join() t2.join() # Canceling again should be a no-op.... self.assertIsNone(utils.cancel_query(self.name)) # Ensure a new working connection can be opened under the # same named. conn = utils.named_connection(self.name, db=self.db) c = conn.cursor() c.execute('SELECT (1)') val, = c.fetchone() self.assertEqual(val, 1)
def runner(t, db, name): conn = utils.named_connection(name, db=db) conn.connection.create_function('sleep', 1, time.sleep) c = conn.cursor() c.execute("SELECT sleep(2)")
def runner(t, db, name): conn = utils.named_connection(name, db=db) c = conn.cursor() c.execute('SELECT sleep(2)')
def runner(t, db, name): conn = utils.named_connection(name, db=db) c = conn.cursor() t.assertRaises(DatabaseError, c.execute, 'SELECT pg_sleep(2)')