Changeset - 163ecbc7d3d2
[Not reviewed]
0 2 0
Brett Smith - 4 years ago 2020-03-17 22:06:43
brettcsmith@brettcsmith.org
data: iter_postings uses Account.
2 files changed with 2 insertions and 0 deletions:
0 comments (0 inline, 0 general)
conservancy_beancount/data.py
Show inline comments
...
 
@@ -83,8 +83,9 @@ class PostingMeta(collections.abc.MutableMapping):
 
            del self.post.meta[key]
 

	
 

	
 
def iter_postings(txn: Transaction) -> Iterator[Posting]:
 
    for index, source in enumerate(txn.postings):
 
        yield source._replace(
 
            account=Account(source.account),
 
            meta=PostingMeta(txn, index, source),
 
        )
tests/test_data_iter_postings.py
Show inline comments
...
 
@@ -27,12 +27,13 @@ def simple_txn(index=None, key=None):
 
        ('Income:Donations', -5, {'note': 'donation love', 'extra': 'Extra'}),
 
    ])
 

	
 
def test_iter_postings(simple_txn):
 
    for source, post in zip(simple_txn.postings, data.iter_postings(simple_txn)):
 
        assert all(source[x] == post[x] for x in range(len(source) - 1))
 
        assert isinstance(post.account, data.Account)
 
        assert post.meta['note']  # Only works with PostingMeta
 

	
 
def test_setting_metadata_propagates_to_source(simple_txn):
 
    for index, post in enumerate(data.iter_postings(simple_txn)):
 
        post.meta['edited'] = str(index)
 
    for index, post in enumerate(simple_txn.postings):
0 comments (0 inline, 0 general)