From e9f15a794b62fa8d18e926dfd2fe52fcef180c56 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Wed, 24 Mar 2021 16:36:34 +0100 Subject: fix change recording for transfer cmd --- geldschieberbot.py | 9 ++++++--- test.py | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/geldschieberbot.py b/geldschieberbot.py index 73449e8..cc0b0cc 100644 --- a/geldschieberbot.py +++ b/geldschieberbot.py @@ -382,7 +382,8 @@ def transfer(sender, args, msg): return None, err else: output += ret - change.append((sender, source, amount_cent)) + # Sender <- X Source + change.append((sender, source, -amount_cent)) ret, err = transaction(sender, ["!schieb", destination, amount_raw], "") if err: @@ -390,7 +391,8 @@ def transfer(sender, args, msg): return output, None else: output += ret - change.append((sender, source, amount_cent)) + # Sender -> X Destination + change.append((sender, destination, amount_cent)) ret, err = transaction(source, ["!zieh", destination, amount_raw], "") if err: @@ -398,7 +400,8 @@ def transfer(sender, args, msg): return output, None else: output += ret - change.append((sender, source, amount_cent)) + # Destination -> X Source + change.append((destination, source, amount_cent)) record_changes = saved_record_changes if err is None and record_changes and not dry_run: diff --git a/test.py b/test.py index d7db0c8..e786a93 100755 --- a/test.py +++ b/test.py @@ -836,6 +836,20 @@ alice <- 10.00 bob self.assertEqual(res.stdout, msg) compare_state("test/state.json_3users") + def test_fuck_transfer(self): + run_bot(self, num[alice], f"!transfer 5 {bob} {charlie}") + res = run_bot(self, num[alice], "!fuck") + msg = \ +"""alice: sorry I fucked up! +Rewinding: +!transfer 5 bob charlie +alice -> 5.00 bob +alice <- 5.00 charlie +charlie <- 5.00 bob +""" + self.assertEqual(res.stdout, msg) + compare_state("test/state.json_3users") + def test_rewind_first(self): run_bot(self, num[alice], f"!split 3 {bob} {charlie}") run_bot(self, num[alice], f"!schieb {bob} 10") -- cgit v1.2.3