diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2021-03-24 16:36:34 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2021-03-24 16:36:34 +0100 |
| commit | e9f15a794b62fa8d18e926dfd2fe52fcef180c56 (patch) | |
| tree | 8573337ae1f7ff3eaed795e57178c068091fa49e | |
| parent | 2fdb547c23af8a2a74eafc475e59b894d1e8894c (diff) | |
| download | geldschieberbot-e9f15a794b62fa8d18e926dfd2fe52fcef180c56.tar.gz geldschieberbot-e9f15a794b62fa8d18e926dfd2fe52fcef180c56.zip | |
fix change recording for transfer cmd
| -rw-r--r-- | geldschieberbot.py | 9 | ||||
| -rwxr-xr-x | 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: @@ -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") |
