aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2021-03-24 16:36:34 +0100
committerFlorian Fischer <florian.fl.fischer@fau.de>2021-03-24 16:36:34 +0100
commite9f15a794b62fa8d18e926dfd2fe52fcef180c56 (patch)
tree8573337ae1f7ff3eaed795e57178c068091fa49e
parent2fdb547c23af8a2a74eafc475e59b894d1e8894c (diff)
downloadgeldschieberbot-e9f15a794b62fa8d18e926dfd2fe52fcef180c56.tar.gz
geldschieberbot-e9f15a794b62fa8d18e926dfd2fe52fcef180c56.zip
fix change recording for transfer cmd
-rw-r--r--geldschieberbot.py9
-rwxr-xr-xtest.py14
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")