fuzeman/byte-apsw

View on GitHub
byte/executors/apsw/models/transaction.py

Summary

Maintainability
A
55 mins
Test Coverage
"""byte-apsw - executor transaction module."""
from __future__ import absolute_import, division, print_function

from byte.executors.apsw.models.cursor import ApswCursor
from byte.executors.core.models.database import DatabaseTransaction


class ApswTransaction(DatabaseTransaction, ApswCursor):
    """APSW transaction class."""

    def begin(self):
        """Begin transaction."""
        self.instance.execute('BEGIN;')

    def commit(self):
        """Commit transaction."""
        self.instance.execute('COMMIT;')

    def rollback(self):
        """Rollback transaction."""
        self.instance.execute('ROLLBACK;')

    def close(self):
        """Close transaction."""
        # Close transaction
        super(ApswTransaction, self).close()

        # Close cursor
        self.instance.close()
        self.instance = None