From bb9bc80d9b41acef30338943e5d27182fa0e75e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Sun, 9 Sep 2018 13:39:46 +0100 Subject: [PATCH 1/2] Allow Tabs object to be sliced MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maxime “pep” Buquet --- poezio/core/tabs.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poezio/core/tabs.py b/poezio/core/tabs.py index bcf6dd41..3ced7a7e 100644 --- a/poezio/core/tabs.py +++ b/poezio/core/tabs.py @@ -67,10 +67,10 @@ class Tabs: def __iter__(self): return iter(self._tabs) - def __getitem__(self, index: Union[int, str]): - if isinstance(index, int): - return self._tabs[index] - return self.by_name(index) + def __getitem__(self, index: Union[int, str, slice]): + if isinstance(index, str): + return self.by_name(index) + return self._tabs[index] def first(self) -> tabs.Tab: """Return the Roster tab""" From 65649e91c4f2130143645a6901bfb029e44e2993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Mon, 10 Sep 2018 22:45:23 +0100 Subject: [PATCH 2/2] Tabs: add test for slice support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maxime “pep” Buquet --- test/test_tabs.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/test_tabs.py b/test/test_tabs.py index aab4f0d0..0a6930d4 100644 --- a/test/test_tabs.py +++ b/test/test_tabs.py @@ -172,3 +172,14 @@ def test_set_current(): tabs.set_current_tab(dummy2) assert tabs.current_tab is dummy2 +def test_slice(): + DummyTab.reset() + tabs = Tabs(h) + dummy = DummyTab() + dummy2 = DummyTab() + dummy3 = DummyTab() + tabs.append(dummy) + tabs.append(dummy2) + tabs.append(dummy3) + + assert tabs[1:2][0] is dummy2