Skip to content

Commit

Permalink
bugfixed ignoring optional entries when processing subtransactions
Browse files Browse the repository at this point in the history
  • Loading branch information
dnbasta committed Mar 25, 2024
1 parent 1eae5b2 commit 652b5a7
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
15 changes: 15 additions & 0 deletions tests/test_subtransaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from ynabtransactionadjuster.models import SubTransaction, Category, Payee


@pytest.fixture
def mock_category():
return Category(name='cname', id='id')
Expand All @@ -27,3 +28,17 @@ def test_subtransaction_error(mock_category, mock_payee):
SubTransaction(memo='memo', amount=0, payee='xxx', category=mock_category)
with pytest.raises(ValidationError):
SubTransaction(memo='memo', amount=0, payee=mock_payee, category='xxx')


@pytest.mark.parametrize('test_input, expected', [
(SubTransaction(amount=1000), dict(amount=1000)),
(SubTransaction(amount=1000, memo='memo'), dict(amount=1000, memo='memo')),
(SubTransaction(amount=1000, payee=Payee(name='payee')), dict(amount=1000, payee_name='payee')),
(SubTransaction(amount=1000, payee=Payee(name='payee', id='payeeid')), dict(amount=1000, payee_name='payee', payee_id='payeeid')),
(SubTransaction(amount=1000, category=Category(name='category', id='categoryid')), dict(amount=1000, category_id='categoryid'))])
def test_as_dict(test_input, expected):
# Act
d = test_input.as_dict()

# Assert
assert d == expected
6 changes: 3 additions & 3 deletions ynabtransactionadjuster/models/subtransaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ class SubTransaction(BaseModel):

def as_dict(self) -> dict:
instance_dict = dict(amount=self.amount)
if self.payee.name:
if self.payee and self.payee.name:
instance_dict['payee_name'] = self.payee.name
if self.payee.id:
if self.payee and self.payee.id:
instance_dict['payee_id'] = self.payee.id
if self.category.id:
if self.category and self.category.id:
instance_dict['category_id'] = self.category.id
if self.memo:
instance_dict['memo'] = self.memo
Expand Down

0 comments on commit 652b5a7

Please sign in to comment.