From 256011e49f292c6b9a75242d294bb956a0745f61 Mon Sep 17 00:00:00 2001 From: onerandomusername Date: Fri, 19 Nov 2021 15:29:20 -0500 Subject: [PATCH] chore: fold get_footer functionality into update_states --- modmail/utils/pagination.py | 27 +++++++++++-------------- tests/modmail/utils/test_pagination.py | 28 -------------------------- 2 files changed, 12 insertions(+), 43 deletions(-) diff --git a/modmail/utils/pagination.py b/modmail/utils/pagination.py index 0c381ea6..3ee71ea7 100644 --- a/modmail/utils/pagination.py +++ b/modmail/utils/pagination.py @@ -230,18 +230,6 @@ async def interaction_check(self, interaction: Interaction) -> bool: ) return False - def get_footer(self) -> Optional[str]: - """Returns the footer text.""" - if self.embed is None: - self.content = self._pages[self.index] - return None - self.embed.description = self._pages[self.index] - page_indicator = f"Page {self.index+1}/{len(self._pages)}" - footer_txt = ( - f"{self.footer_text} ({page_indicator})" if self.footer_text is not None else page_indicator - ) - return footer_txt - def update_states(self) -> None: """ Disable specific components depending on paginator page and length. @@ -251,9 +239,18 @@ def update_states(self) -> None: if the paginator is on the last page, the jump last/move forward buttons will be disabled. """ # update the footer - text = self.get_footer() - if self.embed: - self.embed.set_footer(text=text) + if self.embed is None: + self.content = self._pages[self.index] + else: + self.embed.description = self._pages[self.index] + page_indicator = f"Page {self.index+1}/{len(self._pages)}" + self.embed.set_footer( + text=( + f"{self.footer_text} ({page_indicator})" + if self.footer_text is not None + else page_indicator + ) + ) # determine if the jump buttons should be enabled more_than_two_pages = len(self._pages) > 2 diff --git a/tests/modmail/utils/test_pagination.py b/tests/modmail/utils/test_pagination.py index 562af501..2ada1079 100644 --- a/tests/modmail/utils/test_pagination.py +++ b/tests/modmail/utils/test_pagination.py @@ -1,5 +1,3 @@ -from typing import List, Union - import pytest from modmail.utils.pagination import ButtonPaginator @@ -11,29 +9,3 @@ async def test_paginator_init() -> None: content = ["content"] paginator = ButtonPaginator(content, prefix="", suffix="", linesep="") assert paginator.pages == content - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - "content, footer_text", - [ - (["5"], "Snap, crackle, pop"), - (["Earthly"], "world"), - ("There are no plugins installed.", None), - ], -) -async def test_paginator_footer(content: Union[str, List[str]], footer_text: str) -> None: - """Test the paginator footer matches what is passed.""" - pag = ButtonPaginator(content, footer_text=footer_text) - print("index:", pag.index) - print("page len: ", len(pag.pages)) - assert footer_text == pag.footer_text - if isinstance(content, str): - content = [content] - - if footer_text is not None: - assert pag.get_footer().endswith(f"{len(content)})") - assert pag.get_footer().startswith(footer_text) - - else: - assert pag.get_footer().endswith(f"{len(content)}")