summaryrefslogtreecommitdiff
path: root/tests/transactions
Commit message (Collapse)AuthorAgeFilesLines
* Refs #33476 -- Applied Black's 2023 stable style.David Smith2023-02-011-12/+0
| | | | | | | | Black 23.1.0 is released which, as the first release of the year, introduces the 2023 stable style. This incorporates most of last year's preview style. https://github.com/psf/black/releases/tag/23.1.0
* Improved test coverage for django.db.transaction.Pablo2022-12-051-0/+16
|
* Fixed #23353 -- Used "raise from" when raising TransactionManagementError.David Wobrock2022-10-031-1/+4
| | | | This change sets the __cause__ attribute to raised exceptions.
* Fixed DatabaseFeatures.uses_savepoints/can_release_savepoints and related ↵Mariusz Felisiak2022-04-181-0/+1
| | | | tests with MyISAM storage engine.
* Refs #33476 -- Refactored code to strictly match 88 characters line length.Mariusz Felisiak2022-02-071-4/+7
|
* Refs #33476 -- Reformatted code with Black.django-bot2022-02-072-37/+59
|
* Fixed #33161 -- Enabled durability check for nested atomic blocks in TestCase.Krzysztof Jagiello2021-11-121-36/+12
| | | | Co-Authored-By: Adam Johnson <me@adamj.eu>
* Fixed isolation of NonAutocommitTests.test_orm_query_after_error_and_rollback().Mariusz Felisiak2021-07-091-7/+8
|
* Fixed #32220 -- Added durable argument to transaction.atomic().Ian Foote2020-11-271-1/+74
|
* Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly.Hasan Ramezani2020-11-061-43/+37
| | | | | | | | This also replaces assertQuerysetEqual() to assertSequenceEqual()/assertCountEqual() where appropriate. Co-authored-by: Peter Inglesby <peter.inglesby@gmail.com> Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
* Fixed #30116 -- Dropped support for Python 3.5.Tim Graham2019-01-301-2/+0
|
* Fixed #21171 -- Avoided starting a transaction when a single (or atomic ↵Florian Apolloner2018-10-171-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | queries) are executed. Checked the following locations: * Model.save(): If there are parents involved, take the safe way and use transactions since this should be an all or nothing operation. If the model has no parents: * Signals are executed before and after the previous existing transaction -- they were never been part of the transaction. * if `force_insert` is set then only one query is executed -> atomic by definition and no transaction needed. * same applies to `force_update`. * If a primary key is set and no `force_*` is set Django will try an UPDATE and if that returns zero rows it tries an INSERT. The first case is completly save (single query). In the second case a transaction should not produce different results since the update query is basically a no-op then (might miss something though). * QuerySet.update(): no signals issued, single query -> no transaction needed. * Model/Collector.delete(): This one is fun due to the fact that is does many things at once. Most importantly though: It does send signals as part of the transaction, so for maximum backwards compatibility we need to be conservative. To ensure maximum compatibility the transaction here is removed only if the following holds true: * A single instance is being deleted. * There are no signal handlers attached to that instance. * There are no deletions/updates to cascade. * There are no parents which also need deletion.
* Used skip(If|Unless)DBFeature in transactions tests.Jon Dufresne2018-10-041-11/+5
|
* Used assertRaisesMessage() to test Django's error messages.Mads Jensen2017-07-291-4/+9
|
* Reverted "Refs #16682 -- Tested transaction.atomic() with KeyboardInterrupt."Tim Graham2017-03-091-14/+0
| | | | | This reverts commit d895fc9ac01db3d3420aa7c943949fe17b3ce028 since the test is problematic as described in the ticket.
* Fixed #27683 -- Made MySQL default to the read committed isolation level.Tim Graham2017-02-011-10/+13
| | | Thanks Shai Berger for test help and Adam Johnson for review.
* Refs #23919 -- Stopped inheriting from object to define new style classes.Simon Charette2017-01-191-1/+1
|
* Refs #23919 -- Removed python_2_unicode_compatible decorator usageClaude Paroz2017-01-181-2/+0
|
* Refs #23919 -- Removed encoding preambles and future importsClaude Paroz2017-01-182-4/+0
|
* Refs #16682 -- Replaced signal number with equivalent signal.SIGINT.Mariusz Felisiak2016-11-251-2/+3
|
* Fixed #27504 -- Allowed using the ORM after an error and rollback when ↵Mark Young2016-11-231-2/+22
| | | | autocommit is off.
* Refs #16682 -- Tested transaction.atomic() with KeyboardInterrupt.Claude Paroz2016-09-211-0/+13
|
* Fixed E128 flake8 warnings in tests/.Tim Graham2016-04-081-14/+16
|
* Refs #26022 -- Replaced six.assertRaisesRegex with assertRaisesMessage as ↵Hasan2016-01-291-20/+19
| | | | appropriate.
* Fixed #24921 -- set_autocommit(False) + ORM queries.Aymeric Augustin2015-09-211-2/+15
| | | | | | | | | | | | | This commits lifts the restriction that the outermost atomic block must be declared with savepoint=False. This restriction was overly cautious. The logic that makes it safe not to create savepoints for inner blocks also applies to the outermost block when autocommit is disabled and a transaction is already active. This makes it possible to use the ORM after set_autocommit(False). Previously it didn't work because ORM write operations are protected with atomic(savepoint=False).
* Sorted imports with isort; refs #23860.Tim Graham2015-02-061-3/+7
|
* Removed threading fallback imports.Tim Graham2015-01-281-4/+1
| | | | Django imports threading in many other places without fallback.
* Removed numbering from the models.py header of some test packages.Loic Bistuer2014-09-241-1/+1
| | | | This is a reliqua from the early days of the modeltests/regressiontests era.
* Fixed #23074 -- Avoided leaking savepoints in atomic.Aymeric Augustin2014-07-281-0/+22
| | | | Thanks Chow Loong Jin for the report and the initial patch.
* Fixed #21239 -- Maintained atomicity when closing the connection.Aymeric Augustin2014-04-101-2/+16
| | | | | Refs #15802 -- Reverted #7c657b24 as BaseDatabaseWrapper.close() now has a proper "finally" clause that may need to preserve self.connection.
* Fixed #22291 -- Avoided shadowing deadlock exceptions on MySQL.Aymeric Augustin2014-03-231-1/+46
| | | | Thanks err for the report.
* Removed legacy transaction management per the deprecation timeline.Aymeric Augustin2014-03-211-339/+1
|
* Ensure cursors are closed when no longer needed.Michael Manfre2014-02-021-6/+7
| | | | | | This commit touchs various parts of the code base and test framework. Any found usage of opening a cursor for the sake of initializing a connection has been replaced with 'ensure_connection()'.
* Fixing E302 ErrorsJason Myers2013-11-021-5/+11
| | | | Signed-off-by: Jason Myers <jason@jasonamyers.com>
* Fixed #21288 -- Fixed E126 pep8 warningsAlasdair Nicol2013-10-211-1/+1
|
* Fixed #21268 -- Fixed E303 pep8 warningsAlasdair Nicol2013-10-181-1/+0
|
* Fixed #21134 -- Prevented queries in broken transactions.Aymeric Augustin2013-09-301-27/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit 63ddb271a44df389b2c302e421fc17b7f0529755 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Sep 29 22:51:00 2013 +0200 Clarified interactions between atomic and exceptions. commit 2899ec299228217c876ba3aa4024e523a41c8504 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Sep 22 22:45:32 2013 +0200 Fixed TransactionManagementError in tests. Previous commit introduced an additional check to prevent running queries in transactions that will be rolled back, which triggered a few failures in the tests. In practice using transaction.atomic instead of the low-level savepoint APIs was enough to fix the problems. commit 4a639b059ea80aeb78f7f160a7d4b9f609b9c238 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Tue Sep 24 22:24:17 2013 +0200 Allowed nesting constraint_checks_disabled inside atomic. Since MySQL handles transactions loosely, this isn't a problem. commit 2a4ab1cb6e83391ff7e25d08479e230ca564bfef Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sat Sep 21 18:43:12 2013 +0200 Prevented running queries in transactions that will be rolled back. This avoids a counter-intuitive behavior in an edge case on databases with non-atomic transaction semantics. It prevents using savepoint_rollback() inside an atomic block without calling set_rollback(False) first, which is backwards-incompatible in tests. Refs #21134. commit 8e3db393853c7ac64a445b66e57f3620a3fde7b0 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Sep 22 22:14:17 2013 +0200 Replaced manual savepoints by atomic blocks. This ensures the rollback flag is handled consistently in internal APIs.
* Translated a test to English for consistency.Aymeric Augustin2013-09-221-2/+2
| | | | Also fixed a typo.
* Partial revert of 165f44aa.Aymeric Augustin2013-09-221-82/+97
| | | | | | That commit didn't always improve readability. See discussion on django-developers for details.
* Combine consecutive with statementsClaude Paroz2013-08-161-97/+82
| | | | Python 2.7 allows to combine several 'with' instructions.
* Removed most of absolute_import importsClaude Paroz2013-07-291-1/+1
| | | | | Should be unneeded with Python 2.7 and up. Added some unicode_literals along the way.
* Stopped using django.utils.unittest in the test suite.Aymeric Augustin2013-07-011-1/+1
| | | | Refs #20680.
* Advanced deprecation warnings for Django 1.7.Aymeric Augustin2013-06-291-4/+4
|
* Fixed #20571 -- Added an API to control connection.needs_rollback.Aymeric Augustin2013-06-271-2/+24
| | | | | | | This is useful: - to force a rollback on the exit of an atomic block without having to raise and catch an exception; - to prevent a rollback after handling an exception manually.
* Defined available_apps in relevant tests.Aymeric Augustin2013-06-101-0/+16
| | | | Fixed #20483.
* Moved IgnorePendingDeprecationWarningsMixin in django.test.utils.Aymeric Augustin2013-05-181-13/+1
| | | | This mixin is useful whenever deprecating a large part of Django.
* Made atomic usable when autocommit is off.Aymeric Augustin2013-03-131-11/+19
| | | | | | | | | | | | | | | | Thanks Anssi for haggling until I implemented this. This change alleviates the need for atomic_if_autocommit. When autocommit is disabled for a database, atomic will simply create and release savepoints, and not commit anything. This honors the contract of not doing any transaction management. This change also makes the hack to allow using atomic within the legacy transaction management redundant. None of the above will work with SQLite, because of a flaw in the design of the sqlite3 library. This is a known limitation that cannot be lifted without unacceptable side effects eg. triggering arbitrary commits.
* Fixed #20028 -- Made atomic usable on callable instances.Aymeric Augustin2013-03-121-0/+11
| | | | Thanks Anssi for the report.
* Improved the API of set_autocommit.Aymeric Augustin2013-03-111-3/+3
|
* Added an option to disable the creation of savepoints in atomic.Aymeric Augustin2013-03-111-0/+93
|