Changeset - 2b23eba549ad
[Not reviewed]
0 2 0
Brett Smith - 4 years ago 2020-10-26 18:52:41
brettcsmith@brettcsmith.org
data: PostingMeta.detached() can be chain-called.
2 files changed with 21 insertions and 1 deletions:
0 comments (0 inline, 0 general)
conservancy_beancount/data.py
Show inline comments
...
 
@@ -569,3 +569,3 @@ class PostingMeta(Metadata):
 
        retval = type(self)(self.txn, self.index, self.post)
 
        retval.meta = retval.meta.new_child()
 
        retval.meta = self.meta.new_child()
 
        return retval
tests/test_data_posting_meta.py
Show inline comments
...
 
@@ -146,2 +146,22 @@ def test_mutable_copy():
 

	
 
def test_double_detached():
 
    txn = testutil.Transaction(filename='f', lineno=140, postings=[
 
        ('Income:Donations', -19),
 
    ])
 
    meta1 = data.PostingMeta(txn, 0).detached()
 
    meta1['metakey'] = 'meta'
 
    meta1['layerkey'] = 'one'
 
    meta2 = meta1.detached()
 
    meta2['layerkey'] = 'two'
 
    expected = {
 
        'filename': 'f',
 
        'lineno': 140,
 
        'metakey': 'meta',
 
        'layerkey': 'two',
 
    }
 
    assert dict(meta2) == expected
 
    expected['layerkey'] = 'one'
 
    assert dict(meta1) == expected
 
    assert not any(post.meta for post in txn.postings)
 

	
 
# The .get() tests are arguably testing the stdlib, but they're short and
0 comments (0 inline, 0 general)