import re import unittest from bot import STATS_COMMAND_PATTERN class StatsCommandPatternTests(unittest.TestCase): def test_matches_plain_and_mentioned_forms(self): # В группе команду часто отправляют с явным обращением к боту. for text in ("/stats", "/stats@pisatel_posts_bot", "/stats all", "/stats@pisatel_posts_bot week"): with self.subTest(text=text): self.assertIsNotNone(re.match(STATS_COMMAND_PATTERN, text)) def test_rejects_unknown_arguments(self): for text in ("/stats yearly", "/stats@bot unknown", "stats", "/statsical"): with self.subTest(text=text): self.assertIsNone(re.match(STATS_COMMAND_PATTERN, text)) def test_period_argument_is_extractable(self): match = re.match(STATS_COMMAND_PATTERN, "/stats@pisatel_posts_bot month") self.assertIsNotNone(match) assert match is not None self.assertEqual(match.group(1), "month") if __name__ == "__main__": unittest.main()