An error occurred fetching the project authors.
  1. 17 Sep, 2004 1 commit
    • Tim Peters's avatar
      Merge rev 27557 from 3.3 branch. · 9087e56d
      Tim Peters authored
      New test checkReadConflictErrorClearedDuringAbort().
      
      This confirms that 3.3 didn't have the 3.2.4c1 bug wherein
      an explict transaction abort() failed to clear Connections'
      memory of ReadConflictErrors.
      9087e56d
  2. 14 Sep, 2004 1 commit
    • Tim Peters's avatar
      Merge rev 27520 from 3.3 branch. · f2976c06
      Tim Peters authored
      As discussed on zodb-dev, failing commit "sticks" now.
      
      After a commit fails (raises an exception), all subsequent attempts
      to commit, join, or register with the transaction now raise the new
      TransactionFailedError.  The failed transaction must be explicitly
      discarded now, via abort() on the transaction or begin() on its
      transaction manager.
      f2976c06
  3. 10 Sep, 2004 1 commit
  4. 31 Aug, 2004 1 commit
    • Tim Peters's avatar
      Forward port from Zope 2.7 branch. · c300db1e
      Tim Peters authored
      _handle_independent():  Failed to record that a ReadConflictError
      was raised for an object with a _p_independent() method that
      returned false.
      c300db1e
  5. 26 Aug, 2004 1 commit
    • Tim Peters's avatar
      Merge rev 27279 from 3.3 branch. · eb3efdfb
      Tim Peters authored
      Transaction.begin() didn't do anything.
      
      begin() is supposed to abort the current transaction, but
      Transaction.begin() did not.  Calling begin() on a transaction
      *manager* worked fine, and is the intended way to do a begin()
      in 3.3.  But calling begin() on a Transaction object is still
      very easy to do (e.g., the older get_transaction().begin()
      spelling still works), and shouldn't be a subtle disaster.
      eb3efdfb
  6. 02 Jun, 2004 1 commit
  7. 16 Apr, 2004 2 commits
  8. 15 Apr, 2004 1 commit
  9. 14 Apr, 2004 1 commit
  10. 01 Apr, 2004 1 commit
    • Jeremy Hylton's avatar
      Merge the jeremy-txn-branch to the head. · 860e89b9
      Jeremy Hylton authored
      This branch introduces a new transaction API.  The key features are:
        - top-level functions in transaction -- get(), commit(), abort()
        - explicit transaction manager objects
        - Transaction objects are used for exactly one transaction
        - support for transaction synchronizers
      
      The changes here are still provisional, but we want to get them off an
      obscure branch and onto the head for further development.
      860e89b9
  11. 02 Mar, 2004 2 commits
  12. 06 Jan, 2004 1 commit
    • Jeremy Hylton's avatar
      Make sure _setstate_noncurrent() returns True on success. · fb01c60d
      Jeremy Hylton authored
      Bug reported by Dieter Maurer.
      
      The change required several of the read-conflict tests to be updated
      to specify that they don't want MVCC support.  It was basically
      accidental that they passed before this change.  Note that we don't
      have any tests of code that gets a read conflict in MVCC mode, which
      would only be possible after a pack() or in some other weird case.
      fb01c60d
  13. 29 Dec, 2003 1 commit
  14. 24 Dec, 2003 1 commit
  15. 10 Dec, 2003 1 commit
  16. 28 Nov, 2003 1 commit
  17. 03 Nov, 2003 1 commit
  18. 02 Oct, 2003 1 commit
  19. 08 May, 2003 1 commit
  20. 23 Apr, 2003 2 commits
  21. 22 Apr, 2003 2 commits
  22. 08 Apr, 2003 1 commit
    • Jeremy Hylton's avatar
      Backport atomic invalidations code from Zope3. · b25cfe7a
      Jeremy Hylton authored
      The DB's invalidate() method takes a set of oids corresponding to all
      the changes from a data manager for one transaction.  All the objects
      are invalidated at once.
      
      Add a few tests in testZODB of the new code.  The tests just cover
      corner cases, because I can't think of a sensible way to test the
      atomicity.  When it has failed in the past, it's been caused by
      nearly-impossible to reproduce data races.
      
      This fix needs to be backported to Zope 2.6, but only after assessing
      how significant an impact the API change will have.
      b25cfe7a
  23. 17 Jan, 2003 1 commit
    • Shane Hathaway's avatar
      Merged shane-local-transactions-branch. · 93a40774
      Shane Hathaway authored
      This change adds a new method, setLocalTransaction(), to the
      Connection class.  ZODB applications can call this method to bind
      transactions to connections rather than threads.  This is especially
      useful for GUI applications, which often have only one thread but
      multiple independent activities within that thread (generally one per
      window).  Thanks to Christian Reis for championing this feature.
      
      Applications that take advantage of this feature should not use the
      get_transaction() function.  Until now, ZODB itself sometimes assumed
      get_transaction() was the only way to get the transaction.  Minor
      corrections have been added.  The ZODB test suite, on the other hand,
      can continue to use get_transaction(), since it is free to assume that
      transactions are bound to threads.
      93a40774
  24. 14 Jan, 2003 1 commit
  25. 06 Dec, 2002 1 commit
  26. 18 Nov, 2002 1 commit
  27. 07 Sep, 2002 1 commit
    • Jeremy Hylton's avatar
      Handle empty transactions without touching the storage. · d7a558d1
      Jeremy Hylton authored
      # NB: commit() is responsible for calling tpc_begin() on the storage.
      # It uses self._begun to track whether it has been called.  When
      # self._begun is None, it has not been called.
      
      # This arrangement allows us to handle the special case of a
      # transaction with no modified objects.  It is possible for
      # registration to be occur unintentionally and for a persistent
      # object to compensate by making itself as unchanged.  When this
      # happens, it's possible to commit a transaction with no modified
      # objects.
      
      # Since tpc_begin() may raise a ReadOnlyError, don't call it if there
      # are no objects.  This avoids spurious (?) errors when working with
      # a read-only storage.
      
      Add code to handle this in Connection's tpc_begin() and commit()
      methods.
      
      Add two tests in testZODB.
      d7a558d1
  28. 14 Aug, 2002 1 commit
  29. 08 Aug, 2002 1 commit
    • Jeremy Hylton's avatar
      Refactor test cleanup to use removefs() helper function. · 46d79eae
      Jeremy Hylton authored
      StorageTestBase.removefs() will attempt to remove files with all the
      possible extensions that FileStorage will create.  It will raise
      os.error for any error except ENOENT.
      
      Remove many variants of removefs() implemented in the various test
      suites.
      46d79eae
  30. 12 Jun, 2002 1 commit
    • Shane Hathaway's avatar
      It's really not safe for unit test modules to change sys.path. Doing · 2a74054a
      Shane Hathaway authored
      so makes the full suite brittle.  Cleaned out all the places where unit
      tests change sys.path.  (Use the PYTHONPATH environment variable instead.)
      
      Also brought SearchIndex tests up to date, which I didn't really need to do
      since SearchIndex is deprecated, but I did it as part of figuring out the
      failed Interface tests, so I might as well check in my work. ;-)  One of the
      test modules in SearchIndex forgets to define a global named "Dummy",
      actually, so all the tests were failing before this checkin anyway.
      2a74054a
  31. 14 Apr, 2001 1 commit