Commit e654180c authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Improved the API of set_autocommit.

parent f3210093
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -108,7 +108,7 @@ class BaseDatabaseWrapper(object):
        self.connection = self.get_new_connection(conn_params)
        self.init_connection_state()
        if self.settings_dict['AUTOCOMMIT']:
            self.set_autocommit()
            self.set_autocommit(True)
        connection_created.send(sender=self.__class__, connection=self)

    def ensure_connection(self):
@@ -314,7 +314,7 @@ class BaseDatabaseWrapper(object):
        if managed == self.autocommit:
            self.set_autocommit(not managed)

    def set_autocommit(self, autocommit=True):
    def set_autocommit(self, autocommit):
        """
        Enable or disable autocommit.
        """
+1 −1
Original line number Diff line number Diff line
@@ -466,7 +466,7 @@ class BaseDatabaseCreation(object):
        warnings.warn(
            "set_autocommit was moved from BaseDatabaseCreation to "
            "BaseDatabaseWrapper.", PendingDeprecationWarning, stacklevel=2)
        return self.connection.set_autocommit()
        return self.connection.set_autocommit(True)

    def sql_table_creation_suffix(self):
        """
+1 −1
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ def get_autocommit(using=None):
    """
    return get_connection(using).autocommit

def set_autocommit(using=None, autocommit=True):
def set_autocommit(autocommit, using=None):
    """
    Set the autocommit status of the connection.
    """
+5 −5
Original line number Diff line number Diff line
@@ -255,7 +255,7 @@ database connection, if you need to.

.. function:: get_autocommit(using=None)

.. function:: set_autocommit(using=None, autocommit=True)
.. function:: set_autocommit(autocommit, using=None)

These functions take a ``using`` argument which should be the name of a
database. If it isn't provided, Django uses the ``"default"`` database.
@@ -600,11 +600,11 @@ To disable autocommit temporarily, instead of::

you should now use::

    transaction.set_autocommit(autocommit=False)
    transaction.set_autocommit(False)
    try:
        # do stuff
    finally:
        transaction.set_autocommit(autocommit=True)
        transaction.set_autocommit(True)

To enable autocommit temporarily, instead of::

@@ -613,11 +613,11 @@ To enable autocommit temporarily, instead of::

you should now use::

    transaction.set_autocommit(autocommit=True)
    transaction.set_autocommit(True)
    try:
        # do stuff
    finally:
        transaction.set_autocommit(autocommit=False)
        transaction.set_autocommit(False)

Disabling transaction management
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+6 −6
Original line number Diff line number Diff line
@@ -522,7 +522,7 @@ class FkConstraintsTests(TransactionTestCase):
        """
        When constraint checks are disabled, should be able to write bad data without IntegrityErrors.
        """
        transaction.set_autocommit(autocommit=False)
        transaction.set_autocommit(False)
        try:
            # Create an Article.
            models.Article.objects.create(headline="Test article", pub_date=datetime.datetime(2010, 9, 4), reporter=self.r)
@@ -538,13 +538,13 @@ class FkConstraintsTests(TransactionTestCase):
            finally:
                transaction.rollback()
        finally:
            transaction.set_autocommit(autocommit=True)
            transaction.set_autocommit(True)

    def test_disable_constraint_checks_context_manager(self):
        """
        When constraint checks are disabled (using context manager), should be able to write bad data without IntegrityErrors.
        """
        transaction.set_autocommit(autocommit=False)
        transaction.set_autocommit(False)
        try:
            # Create an Article.
            models.Article.objects.create(headline="Test article", pub_date=datetime.datetime(2010, 9, 4), reporter=self.r)
@@ -559,14 +559,14 @@ class FkConstraintsTests(TransactionTestCase):
            finally:
                transaction.rollback()
        finally:
            transaction.set_autocommit(autocommit=True)
            transaction.set_autocommit(True)

    def test_check_constraints(self):
        """
        Constraint checks should raise an IntegrityError when bad data is in the DB.
        """
        try:
            transaction.set_autocommit(autocommit=False)
            transaction.set_autocommit(False)
            # Create an Article.
            models.Article.objects.create(headline="Test article", pub_date=datetime.datetime(2010, 9, 4), reporter=self.r)
            # Retrive it from the DB
@@ -580,7 +580,7 @@ class FkConstraintsTests(TransactionTestCase):
            finally:
                transaction.rollback()
        finally:
            transaction.set_autocommit(autocommit=True)
            transaction.set_autocommit(True)


class ThreadTests(TestCase):
Loading