예제 #1
0
    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
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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
예제 #5
0
 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)")
예제 #6
0
 def runner(t, db, name):
     conn = utils.named_connection(name, db=db)
     c = conn.cursor()
     c.execute('SELECT sleep(2)')
예제 #7
0
 def runner(t, db, name):
     conn = utils.named_connection(name, db=db)
     c = conn.cursor()
     t.assertRaises(DatabaseError, c.execute, 'SELECT pg_sleep(2)')
예제 #8
0
 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)")
예제 #9
0
 def runner(t, db, name):
     conn = utils.named_connection(name, db=db)
     c = conn.cursor()
     c.execute('SELECT sleep(2)')
예제 #10
0
 def runner(t, db, name):
     conn = utils.named_connection(name, db=db)
     c = conn.cursor()
     t.assertRaises(DatabaseError, c.execute, 'SELECT pg_sleep(2)')