コード例 #1
0
 def test_equals(self):  # noqa: AAA01
     """Проверка сравнения двух клавиатур."""
     for result, second, expected, ids in [
         (Keyboard(), Keyboard(), True, "both clear"),
         (
             Keyboard(Button("test_desc", {})),
             Keyboard(Button("test_desc", {})),
             True,
             "equals",
         ),
         (
             Keyboard(Button("first", {})),
             Keyboard(Button("second", {})),
             False,
             "different buttons",
         ),
         (
             Keyboard(Button("first", {}), Button("first", {})),
             Keyboard(Button("first", {})),
             False,
             "different buttons count",
         ),
     ]:
         with self.subTest(ids):
             self.assertEqual(result == second, expected)
コード例 #2
0
ファイル: views.py プロジェクト: kireevys/content_bot
    def build_keyboard(self) -> Keyboard:
        """Формирование клавиатуры."""
        episodes = models.Episode.objects.filter(
            series=self.episode.series,
            lang=self.episode.lang,
            season=self.episode.season,
        )

        buttons = [
            Button(
                episode.episode,
                {
                    "type": "episode",
                    "id": episode.pk,
                },
                is_active=episode == self.episode,
            ) for episode in episodes
        ]
        keyboard = Keyboard(*buttons)
        keyboard.append(
            Button(
                "К описанию",
                {
                    "type": "series",
                    "id": self.episode.series.id,
                    "season": self.episode.season,
                    "lang": self.episode.lang,
                },
            ))
        keyboard.append(Button("Главное меню", {"type": "main"}))
        return keyboard
コード例 #3
0
ファイル: views.py プロジェクト: kireevys/content_bot
    def build_keyboard(self) -> Keyboard:
        """Формирование клавиатуры."""
        langs = {
            episode.lang
            for episode in models.Episode.objects.filter(series=self.series,
                                                         season=self.season)
        }
        buttons = [
            Button(
                models.Langs.repr(lang, ),
                {
                    "type": "series",
                    "id": self.series.id,
                    "season": self.season,
                    "lang": lang,
                },
            ) for lang in langs
        ]
        keyboard = Keyboard(*buttons)
        keyboard.append(
            Button(
                "К выбору сезона",
                {
                    "type": "series",
                    "id": self.series.id
                },
            ))
        keyboard.append(Button("Главное меню", {"type": "main"}))

        return keyboard
コード例 #4
0
    def test_order_buttons(self):
        """Проверка порядка кнопок."""
        buttons = [Button("b", {}), Button("a", {})]

        result = Keyboard(*buttons)  # act

        self.assertEqual(result.buttons[0], buttons[1])
        self.assertEqual(result.buttons[1], buttons[0])
コード例 #5
0
ファイル: views.py プロジェクト: kireevys/content_bot
 def build_keyboard(self) -> Keyboard:
     """Формирование клавиатуры."""
     buttons = [
         Button(series.title, {
             "type": "series",
             "id": series.id
         }) for series in self.qs
     ]
     keyboard = Keyboard(*buttons)
     keyboard.append(Button("Главное меню", {"type": "main"}))
     return keyboard
コード例 #6
0
ファイル: views.py プロジェクト: kireevys/content_bot
    def build_keyboard(self) -> Keyboard:
        """Формирование клавиатуры."""
        seasons: set = {
            season.season
            for season in models.Episode.objects.filter(series=self.series)
        }
        buttons = [
            Button(
                f"Сезон {season}",
                {
                    "type": "series",
                    "id": self.series.id,
                    "season": season
                },
            ) for season in seasons
        ]
        keyboard = Keyboard(*buttons)
        keyboard.append(Button("Список сериалов", {"type": "all"}))
        keyboard.append(Button("Главное меню", {"type": "main"}))

        return keyboard
コード例 #7
0
    def test_keyboard(self):
        """Проверка создания клавиатуры."""
        objs_series = [
            (models.Series(title_ru=f"Тест_{num}", title_eng=f"Test_{num}"))
            for num, i in enumerate(range(10))
        ]
        models.Series.objects.bulk_create(objs_series)
        qs = models.Series.objects.all().order_by("pk")
        expected = Keyboard(
            *(
                Button(
                    s.title,
                    {"type": "series", "id": s.id},
                )
                for s in qs
            )
        )
        expected.append(Button("Главное меню", {"type": "main"}))
        view = AllSeries(qs)

        result = view.build_keyboard()

        self.assertEqual(len(result.buttons), len(objs_series) + 1)
        self.assertEqual(result, expected)
コード例 #8
0
ファイル: views.py プロジェクト: kireevys/content_bot
 def build_keyboard(self) -> Keyboard:
     """Создание клавиатуры."""
     return Keyboard(
         Button("Все сериалы", {"type": "all"}),
         Button("Главное меню", {"type": "main"}),
     )
コード例 #9
0
ファイル: views.py プロジェクト: kireevys/content_bot
 def build_keyboard(self) -> Keyboard:
     """Создание клавиатуры эпизода."""
     return Keyboard(*[])
コード例 #10
0
ファイル: views.py プロジェクト: kireevys/content_bot
 def build_keyboard(self) -> Keyboard:
     """Формирование клавиатуры."""
     return Keyboard(Button("Главное меню", {"type": "main"}))
コード例 #11
0
ファイル: views.py プロジェクト: kireevys/content_bot
 def build_keyboard(self) -> Keyboard:
     """Создание клавиатуры для главного меню."""
     return Keyboard(Button("Меню сериалов", {"type": "series"}),
                     Button("Меню фильмов", {}))
コード例 #12
0
ファイル: test_factory.py プロジェクト: kireevys/content_bot
 def build_keyboard(self) -> "Keyboard":
     """Формирование клавиатуры."""
     return Keyboard(
         Button("First", {}),
         Button("Second", {}),
     )