Skip to content

Commit

Permalink
Merge pull request #31 from zopefoundation/_extension-needs-to-be-set…
Browse files Browse the repository at this point in the history
…table

URGENT: _extension needs to be settable
  • Loading branch information
jimfulton committed Nov 13, 2016
2 parents e339e09 + 9314144 commit de13202
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
3 changes: 3 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
Changes
=======

- Fixed: Some legacy applications expect the transaction _extension
attribute to be settable and it wasn't.

2.0.1 (2016-11-11)
------------------

Expand Down
4 changes: 4 additions & 0 deletions transaction/_transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@ def _extension(self):
# absent any formal API.
return self.extended_info

@_extension.setter
def _extension(self, v):
self.extended_info = v

@property
def user(self):
return self._user
Expand Down
7 changes: 7 additions & 0 deletions transaction/tests/test__transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -1024,6 +1024,13 @@ def test_setExtendedInfo_multiple(self):
self.assertEqual(txn._extension, {u'frob': 'quxxxx', u'baz': 'spam'})
self.assertTrue(txn._extension is txn._extension) # legacy

def test__extension_settable(self):
# Because ZEO sets it. I'll fix ZEO, but maybe something else will break
txn = self._makeOne()
txn._extension = dict(baz='spam')
txn.setExtendedInfo('frob', 'qux')
self.assertEqual(txn.extended_info, {u'frob': 'qux', 'baz': 'spam'})

def test_data(self):
txn = self._makeOne()

Expand Down

0 comments on commit de13202

Please sign in to comment.