aboutsummaryrefslogtreecommitdiff
path: root/test.py
diff options
context:
space:
mode:
Diffstat (limited to 'test.py')
-rwxr-xr-xtest.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/test.py b/test.py
index 3cf5c8d..d279e0b 100755
--- a/test.py
+++ b/test.py
@@ -419,6 +419,102 @@ alice:
self.assertEqual(res.stdout, msg)
+class TestAliasAdd(unittest.TestCase):
+
+ def setUp(self):
+ reset_state("test/state_3users.json")
+
+ def test_add_success(self):
+ res = run_bot(self, num[alice], f"!alias foo {alice} {bob}")
+ self.assertEqual(res.stdout, 'New alias "foo" registered')
+
+ res = run_bot(self, num[alice], f"!alias bar {charlie}")
+ self.assertEqual(res.stdout, 'New alias "bar" registered')
+
+ def test_add_invalid_aliases(self):
+ res = run_bot(self, num[alice], f"!alias foo {alice} {bob}")
+ self.assertEqual(res.stdout, 'New alias "foo" registered')
+ res = run_bot(self, num[alice], f"!alias foo {alice} {bob}")
+ self.assertEqual(res.stdout,
+ 'ERROR: Alias "foo" is already registered')
+
+ res = run_bot(self, num[alice], f"!alias {alice} {alice} {bob}")
+ self.assertEqual(res.stdout,
+ f'ERROR: A user "{alice}" is already registered')
+
+ res = run_bot(self, num[alice], f"!alias 13.23 {charlie}")
+ self.assertEqual(res.stdout,
+ 'ERROR: Pure numerical aliases are not allowed')
+
+ res = run_bot(self, num[alice], "!alias bar ingo")
+ self.assertEqual(res.stdout, 'ERROR: User ingo is not registered')
+
+ res = run_bot(self, num[alice], f"!alias all {alice}")
+ self.assertEqual(res.stdout,
+ 'ERROR: Alias "all" is already registered')
+
+
+class TestAlias(unittest.TestCase):
+
+ def setUp(self):
+ reset_state("test/state_3users.json")
+
+ def test_list_aliases_empty_state(self):
+ res = run_bot(self, num[alice], "!alias")
+ self.assertEqual(res.stdout, f"""Aliases:
+\tall: {alice} {bob} {charlie}""")
+
+ def test_list_aliases(self):
+ run_bot(self, num[alice], f"!alias alob {alice} {bob}")
+ res = run_bot(self, num[alice], "!alias")
+ self.assertEqual(
+ res.stdout, f"""Aliases:
+\tall: {alice} {bob} {charlie}
+\talob: {alice} {bob}""")
+
+ def test_add_invalid_aliases(self):
+ run_bot(self, num[alice], f"!alias foo {alice} {bob}")
+ res = run_bot(self, num[alice], f"!alias foo {alice} {bob}")
+ self.assertEqual(res.stdout,
+ 'ERROR: Alias "foo" is already registered')
+
+ res = run_bot(self, num[alice], f"!alias {alice} {alice} {bob}")
+ self.assertEqual(res.stdout,
+ f'ERROR: A user "{alice}" is already registered')
+
+ res = run_bot(self, num[alice], f"!alias 13.23 {charlie}")
+ self.assertEqual(res.stdout,
+ 'ERROR: Pure numerical aliases are not allowed')
+
+ res = run_bot(self, num[alice], "!alias bar ingo")
+ self.assertEqual(res.stdout, 'ERROR: User ingo is not registered')
+
+ res = run_bot(self, num[alice], f"!alias all {alice}")
+ self.assertEqual(res.stdout,
+ 'ERROR: Alias "all" is already registered')
+
+ def test_split_all(self):
+ res = run_bot(self, num[alice], "!split 9 all")
+ self.assertEqual(res.stdout, \
+"""Split 9.00 between 3 -> 3.00 each
+New Balance:
+alice:
+\t<- bob 3.00
+\t<- charlie 3.00
+\tBalance: 6.00""")
+
+ def test_split_alias(self):
+ run_bot(self, num[alice], f"!alias alob {alice} {bob}")
+ res = run_bot(self, num[charlie], "!split 9 alob")
+ self.assertEqual(res.stdout, \
+"""Split 9.00 between 3 -> 3.00 each
+New Balance:
+charlie:
+\t<- alice 3.00
+\t<- bob 3.00
+\tBalance: 6.00""")
+
+
class TestCarsAdd(unittest.TestCase):
def setUp(self):