예제 #1
0
    def test_cozydb_cozycursor_retry_select(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        cursor1.execute('select 1', retry=1)
        eq_(cursor1.fetchone(), (1, ))
        err_msg = 'Thread id did not change after re-connect, it should be'
        ok_(thread_id1 != cursor1.connection.thread_id(), err_msg)
예제 #2
0
    def test_cozydb_cozycursor_does_not_retry_delete(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        cursor1.execute('delete from table1 where id=%s', (100, ), retry=1)
        cursor1.connection.rollback()
예제 #3
0
    def test_cozydb_cozycursor_force_retry(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        cursor1.execute('update table1 set rank=%s where id=%s', (1, 1),
                        retry=1,
                        force_retry=True)
        cursor1.connection.rollback()
예제 #4
0
    def test_cozydb_cozycursor_does_not_retry_insert(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        cursor1.execute('insert into table1 (name, rank) values (%s, %s)',
                        ('name4', 4),
                        retry=1)
        cursor1.connection.rollback()
예제 #5
0
    def test_cozydb_cozycursor_reconnect(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        try:
            cursor1.execute('select 1')
        except MySQLdb.OperationalError:
            pass
        else:
            ok_(False, '%r connection did not break, it should be' % cursor1)

        cursor1.execute('select 1')
        eq_(cursor1.fetchone(), (1,))
        err_msg = 'Thread id did not change after re-connect, it should be'
        ok_(thread_id1 != cursor1.connection.thread_id(), err_msg)
예제 #6
0
    def test_cozydb_cozycursor_retry_select(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        cursor1.execute('select 1', retry=1)
        eq_(cursor1.fetchone(), (1,))
        err_msg = 'Thread id did not change after re-connect, it should be'
        ok_(thread_id1 != cursor1.connection.thread_id(), err_msg)
예제 #7
0
    def test_cozydb_cozycursor_does_not_retry_delete(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        cursor1.execute('delete from table1 where id=%s', (100, ), retry=1)
        cursor1.connection.rollback()
예제 #8
0
    def test_cozydb_cozycursor_force_retry(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        cursor1.execute('update table1 set rank=%s where id=%s', (1, 1),
                        retry=1,
                        force_retry=True)
        cursor1.connection.rollback()
예제 #9
0
    def test_cozydb_cozycursor_does_not_retry_insert(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        cursor1.execute('insert into table1 (name, rank) values (%s, %s)',
                        ('name4', 4),
                        retry=1)
        cursor1.connection.rollback()
예제 #10
0
 def test_cozydb_cozycursor_fetchall_dict(self):
     cursor = CozyCursor(**self.db_args)
     cursor.execute('select 1 as name')
     eq_(cursor.fetchall(as_dict=True), ({'name': 1},))
예제 #11
0
 def test_cozydb_cozycursor(self):
     cursor = CozyCursor(**self.db_args)
     cursor.execute('select 1')
     eq_(cursor.fetchone(), (1,))
예제 #12
0
    def test_cozydb_cozycursor_reconnect(self):
        cursor1 = CozyCursor(**self.db_args)
        thread_id1 = cursor1.connection.thread_id()

        # Kill connection of cursor1, test re-connect ability then
        cursor2 = CozyCursor(**self.db_args)
        cursor2.execute('kill %d' % thread_id1)

        # wait MySQL server for disconnecting killed connection
        time.sleep(0.02)

        try:
            cursor1.execute('select 1')
        except MySQLdb.OperationalError:
            pass
        else:
            ok_(False, '%r connection did not break, it should be' % cursor1)

        cursor1.execute('select 1')
        eq_(cursor1.fetchone(), (1, ))
        err_msg = 'Thread id did not change after re-connect, it should be'
        ok_(thread_id1 != cursor1.connection.thread_id(), err_msg)
예제 #13
0
 def test_cozydb_cozycursor_fetchall_dict(self):
     cursor = CozyCursor(**self.db_args)
     cursor.execute('select 1 as name')
     eq_(cursor.fetchall(as_dict=True), ({'name': 1}, ))
예제 #14
0
 def test_cozydb_cozycursor(self):
     cursor = CozyCursor(**self.db_args)
     cursor.execute('select 1')
     eq_(cursor.fetchone(), (1, ))