diff --git a/conservancy_beancount/plugin/meta_entity.py b/conservancy_beancount/plugin/meta_entity.py index a105b0b..868183f 100644 --- a/conservancy_beancount/plugin/meta_entity.py +++ b/conservancy_beancount/plugin/meta_entity.py @@ -72,7 +72,7 @@ class MetaEntity(core.TransactionHook): txn_entity, txn_entity_ok = self._check_entity(txn.meta, txn.payee) if txn_entity_ok is False: 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 for post in data.Posting.from_txn(txn): if not post.account.is_under( diff --git a/setup.py b/setup.py index 19f9f9c..f61c406 100755 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ from setuptools import setup setup( name='conservancy_beancount', description="Plugin, library, and reports for reading Conservancy's books", - version='1.13.0', + version='1.13.1', author='Software Freedom Conservancy', author_email='info@sfconservancy.org', license='GNU AGPLv3+', diff --git a/tests/test_meta_entity.py b/tests/test_meta_entity.py index dd5c712..f8b0122 100644 --- a/tests/test_meta_entity.py +++ b/tests/test_meta_entity.py @@ -214,6 +214,16 @@ def test_which_accounts_required_on(hook, account, required): assert any(error.message == "{} missing entity".format(account) 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): txn = testutil.OpeningBalance() assert not list(hook.run(txn))