def test_parse_with_other_commands(self):
     with self.assertRaises(ValueError):
         GenericCheck(self.author, "d3")
     with self.assertRaises(ValueError):
         GenericCheck(self.author, "note:foobar")
     with self.assertRaises(ValueError):
         GenericCheck(self.author, "SUMMON")
     with self.assertRaises(ValueError):
         GenericCheck(self.author, "BEGONE")
     with self.assertRaises(ValueError):
         GenericCheck(self.author, "DIE")
    def test_parse_with_modifiers(self):
        gc = GenericCheck(self.author, "8,9,10-4")
        self.assertEqual(gc.data["attributes"], [8, 9, 10])
        self.assertEqual(gc.data["modifier"], -4)
        self.assertEqual(gc.data["comment"], "")

        gc = GenericCheck(self.author, "!1 + 1 - 4")
        self.assertEqual(gc.data["attributes"], [1])
        self.assertEqual(gc.data["modifier"], -3)
        self.assertEqual(gc.data["comment"], "")

        gc = GenericCheck(self.author, "!1+1- 4 +3 -   9 ")
        self.assertEqual(gc.data["attributes"], [1])
        self.assertEqual(gc.data["modifier"], -9)
        self.assertEqual(gc.data["comment"], "")
    def test_parse_with_large_numbers(self):
        gc = GenericCheck(self.author, "1337")
        self.assertEqual(gc.data["attributes"], [1337])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "")

        gc = GenericCheck(self.author, "100000 100000 1000000")
        self.assertEqual(gc.data["attributes"], [100000, 100000, 1000000])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "")

        gc = GenericCheck(self.author, "999999988888888")
        self.assertEqual(gc.data["attributes"], [999999988888888])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "")
 def test_end2end_impossible(self, mock_randint: MagicMock):
     mock_randint.return_value = 8
     gc = GenericCheck(self.author, "!111 1337 42 1 1 +1 - 2 -4 🎉")
     self.assertEqual(gc.data["attributes"], [111, 1337, 42, 1, 1])
     self.assertEqual(gc.data["EAV"], [106, 1332, 37, -4, -4])
     self.assertEqual(gc.data["modifier"], -5)
     self.assertEqual(gc.data["comment"], "🎉")
     self.assertEqual(gc.data["rolls"].rolls, [8, 8, 8, 8, 8])
     self.assertEqual(gc.data["rolls"].critical_success, False)
     self.assertEqual(gc.data["rolls"].botch, False)
     self.assertEqual(gc.impossible(), True)
     self.assertEqual(
         str(gc),
         " 🎉\n```py\nEEW: 1061332  37  -4  -4\nProbe nicht möglich\n```",
     )
 def test_end2end(self, mock_randint: MagicMock):
     mock_randint.return_value = 8
     gc = GenericCheck(self.author, "1")
     self.assertEqual(gc.data["attributes"], [1])
     self.assertEqual(gc.data["EAV"], [1])
     self.assertEqual(gc.data["modifier"], 0)
     self.assertEqual(gc.data["comment"], "")
     self.assertEqual(gc.data["rolls"].rolls, [8])
     self.assertEqual(gc.data["rolls"].critical_success, False)
     self.assertEqual(gc.data["rolls"].botch, False)
     self.assertEqual(gc.impossible(), False)
     self.assertEqual(
         str(gc),
         " \n```py\nEEW:      1\nWürfel:   8\nNicht bestanden\n```",
     )
 def test_end2end_botch(self, mock_randint: MagicMock):
     mock_randint.return_value = 20
     gc = GenericCheck(self.author, "!18 18 19 +3 💥")
     self.assertEqual(gc.data["attributes"], [18, 18, 19])
     self.assertEqual(gc.data["EAV"], [21, 21, 22])
     self.assertEqual(gc.data["modifier"], +3)
     self.assertEqual(gc.data["comment"], "💥")
     self.assertEqual(gc.data["rolls"].rolls, [20, 20, 20])
     self.assertEqual(gc.data["rolls"].critical_success, False)
     self.assertEqual(gc.data["rolls"].botch, True)
     self.assertEqual(gc.impossible(), False)
     self.assertEqual(
         str(gc),
         " 💥\n"
         "```py\n"
         "EEW:     21  21  22\n"
         "Würfel:  20  20  20\n"
         "Patzer!\n"
         "```",
     )
 def test_end2end_crit(self, mock_randint: MagicMock):
     mock_randint.return_value = 1
     gc = GenericCheck(self.author, "!12 15 16 -4 🎉")
     self.assertEqual(gc.data["attributes"], [12, 15, 16])
     self.assertEqual(gc.data["EAV"], [8, 11, 12])
     self.assertEqual(gc.data["modifier"], -4)
     self.assertEqual(gc.data["comment"], "🎉")
     self.assertEqual(gc.data["rolls"].rolls, [1, 1, 1])
     self.assertEqual(gc.data["rolls"].critical_success, True)
     self.assertEqual(gc.data["rolls"].botch, False)
     self.assertEqual(gc.impossible(), False)
     self.assertEqual(
         str(gc),
         " 🎉\n"
         "```py\n"
         "EEW:      8  11  12\n"
         "Würfel:   1   1   1\n"
         "Kritischer Erfolg!\n"
         "```",
     )
 def test_end2end_modifier(self, mock_randint: MagicMock):
     mock_randint.return_value = 9
     gc = GenericCheck(self.author, "11,13,13-2 Sinnesschärfe")
     self.assertEqual(gc.data["attributes"], [11, 13, 13])
     self.assertEqual(gc.data["EAV"], [9, 11, 11])
     self.assertEqual(gc.data["modifier"], -2)
     self.assertEqual(gc.data["comment"], "Sinnesschärfe")
     self.assertEqual(gc.data["rolls"].rolls, [9, 9, 9])
     self.assertEqual(gc.data["rolls"].critical_success, False)
     self.assertEqual(gc.data["rolls"].botch, False)
     self.assertEqual(gc.impossible(), False)
     self.assertEqual(
         str(gc),
         " Sinnesschärfe\n"
         "```py\n"
         "EEW:      9  11  11\n"
         "Würfel:   9   9   9\n"
         "Bestanden\n"
         "```",
     )
    def test_parse(self):
        gc = GenericCheck(self.author, "13")
        self.assertEqual(gc.data["attributes"], [13])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "")

        gc = GenericCheck(self.author, "1,12,18")
        self.assertEqual(gc.data["attributes"], [1, 12, 18])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "")

        gc = GenericCheck(self.author, "8 19 1400")
        self.assertEqual(gc.data["attributes"], [8, 19, 1400])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "")

        gc = GenericCheck(self.author, "2 2, 2, 2,2,2")
        self.assertEqual(gc.data["attributes"], [2, 2, 2, 2, 2, 2])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "")
Exemple #10
0
    def test_parse_with_comment(self):
        gc = GenericCheck(self.author, "12 test")
        self.assertEqual(gc.data["attributes"], [12])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "test")

        gc = GenericCheck(self.author, "!12,12+3 this is a comment")
        self.assertEqual(gc.data["attributes"], [12, 12])
        self.assertEqual(gc.data["modifier"], +3)
        self.assertEqual(gc.data["comment"], "this is a comment")

        gc = GenericCheck(self.author, "!12,12-6 lolololol")
        self.assertEqual(gc.data["attributes"], [12, 12])
        self.assertEqual(gc.data["modifier"], -6)
        self.assertEqual(gc.data["comment"], "lolololol")

        gc = GenericCheck(self.author,
                          "20 + 1 - 4 can I put anything here? 🤔")
        self.assertEqual(gc.data["attributes"], [20])
        self.assertEqual(gc.data["modifier"], -3)
        self.assertEqual(gc.data["comment"], "can I put anything here? 🤔")
Exemple #11
0
    def test_parse_with_prefix(self):
        gc = GenericCheck(self.author, "!13 1")
        self.assertEqual(gc.data["attributes"], [13, 1])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "")

        gc = GenericCheck(self.author, "! 1,12,18")
        self.assertEqual(gc.data["attributes"], [1, 12, 18])
        self.assertEqual(gc.data["modifier"], 0)
        self.assertEqual(gc.data["comment"], "")

        with self.assertRaises(ValueError):
            GenericCheck(self.author, "!!13 1")
        with self.assertRaises(ValueError):
            GenericCheck(self.author, "!  1 13")
        with self.assertRaises(ValueError):
            GenericCheck(self.author, "!?4")
        with self.assertRaises(ValueError):
            GenericCheck(self.author, "#2,2,2")