meta_entity: Don't set transaction metadata when payee is None. RT#12913
This commit is contained in:
parent
770b22f2f0
commit
51eee8ec8f
3 changed files with 12 additions and 2 deletions
|
@ -72,7 +72,7 @@ class MetaEntity(core.TransactionHook):
|
||||||
txn_entity, txn_entity_ok = self._check_entity(txn.meta, txn.payee)
|
txn_entity, txn_entity_ok = self._check_entity(txn.meta, txn.payee)
|
||||||
if txn_entity_ok is False:
|
if txn_entity_ok is False:
|
||||||
yield errormod.InvalidMetadataError(txn, self.METADATA_KEY, txn_entity)
|
yield errormod.InvalidMetadataError(txn, self.METADATA_KEY, txn_entity)
|
||||||
if txn_entity is txn.payee:
|
if txn_entity is txn.payee and txn_entity is not None:
|
||||||
txn.meta[self.METADATA_KEY] = txn.payee
|
txn.meta[self.METADATA_KEY] = txn.payee
|
||||||
for post in data.Posting.from_txn(txn):
|
for post in data.Posting.from_txn(txn):
|
||||||
if not post.account.is_under(
|
if not post.account.is_under(
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -5,7 +5,7 @@ from setuptools import setup
|
||||||
setup(
|
setup(
|
||||||
name='conservancy_beancount',
|
name='conservancy_beancount',
|
||||||
description="Plugin, library, and reports for reading Conservancy's books",
|
description="Plugin, library, and reports for reading Conservancy's books",
|
||||||
version='1.13.0',
|
version='1.13.1',
|
||||||
author='Software Freedom Conservancy',
|
author='Software Freedom Conservancy',
|
||||||
author_email='info@sfconservancy.org',
|
author_email='info@sfconservancy.org',
|
||||||
license='GNU AGPLv3+',
|
license='GNU AGPLv3+',
|
||||||
|
|
|
@ -214,6 +214,16 @@ def test_which_accounts_required_on(hook, account, required):
|
||||||
assert any(error.message == "{} missing entity".format(account)
|
assert any(error.message == "{} missing entity".format(account)
|
||||||
for error in errors)
|
for error in errors)
|
||||||
|
|
||||||
|
def test_dont_set_entity_none(hook):
|
||||||
|
txn = testutil.Transaction(postings=[
|
||||||
|
('Expenses:Other', 5),
|
||||||
|
('Assets:Cash', -5),
|
||||||
|
])
|
||||||
|
assert any(hook.run(txn))
|
||||||
|
assert 'entity' not in txn.meta
|
||||||
|
for post in txn.postings:
|
||||||
|
assert post.meta is None or 'entity' not in post.meta
|
||||||
|
|
||||||
def test_not_required_on_opening(hook):
|
def test_not_required_on_opening(hook):
|
||||||
txn = testutil.OpeningBalance()
|
txn = testutil.OpeningBalance()
|
||||||
assert not list(hook.run(txn))
|
assert not list(hook.run(txn))
|
||||||
|
|
Loading…
Reference in a new issue