Ajout du GUI
This commit is contained in:
93
kivy/tests/test_uix_carousel.py
Normal file
93
kivy/tests/test_uix_carousel.py
Normal file
@@ -0,0 +1,93 @@
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture(
|
||||
scope='session', params=(True, False), ids=lambda v: 'loop=' + str(v))
|
||||
def loop(request):
|
||||
return request.param
|
||||
|
||||
|
||||
def test_remove_widget(loop):
|
||||
from kivy.uix.carousel import Carousel
|
||||
from kivy.uix.widget import Widget
|
||||
|
||||
c = Carousel(loop=loop)
|
||||
assert c.index is None
|
||||
assert c.current_slide is None
|
||||
assert len(c.children) == 0
|
||||
assert len(c.slides) == 0
|
||||
|
||||
N_SLIDES = 4
|
||||
for i in range(N_SLIDES):
|
||||
c.add_widget(Widget())
|
||||
assert c.index == 0
|
||||
assert c.current_slide == c.slides[0]
|
||||
assert len(c.children) == 3 if loop else 2
|
||||
assert len(c.slides) == N_SLIDES
|
||||
|
||||
# test issue #6370
|
||||
c.index = len(c.slides) - 1
|
||||
c.remove_widget(c.slides[0])
|
||||
|
||||
# remove a slide(smaller index than the current_slide's).
|
||||
c.index = 1
|
||||
old_current_slide = c.current_slide
|
||||
c.remove_widget(c.slides[c.index - 1])
|
||||
assert c.index == 0
|
||||
assert c.current_slide is old_current_slide
|
||||
assert len(c.children) == 2
|
||||
assert len(c.slides) == 2
|
||||
|
||||
# remove a slide(bigger index than the current_slide's).
|
||||
old_current_slide = c.current_slide
|
||||
c.remove_widget(c.slides[c.index + 1])
|
||||
assert c.index == 0
|
||||
assert c.current_slide is old_current_slide
|
||||
assert len(c.children) == 1
|
||||
assert len(c.slides) == 1
|
||||
|
||||
# remove the current_slide(the last one left).
|
||||
c.remove_widget(c.current_slide)
|
||||
assert c.index is None
|
||||
assert c.current_slide is None
|
||||
assert len(c.children) == 0
|
||||
assert len(c.slides) == 0
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
('n_slides', 'index', 'loop',
|
||||
'index_of_previous_slide', 'index_of_next_slide'),
|
||||
(
|
||||
(1, 0, False, None, None),
|
||||
(1, 0, True, None, None),
|
||||
(2, 0, False, None, 1),
|
||||
(2, 0, True, 1, 1),
|
||||
(2, 1, False, 0, None),
|
||||
(2, 1, True, 0, 0),
|
||||
(3, 0, False, None, 1),
|
||||
(3, 0, True, 2, 1),
|
||||
(3, 1, False, 0, 2),
|
||||
(3, 1, True, 0, 2),
|
||||
(3, 2, False, 1, None),
|
||||
(3, 2, True, 1, 0),
|
||||
)
|
||||
)
|
||||
def test_previous_and_next(
|
||||
n_slides, index, loop, index_of_previous_slide, index_of_next_slide
|
||||
):
|
||||
from kivy.uix.carousel import Carousel
|
||||
from kivy.uix.widget import Widget
|
||||
c = Carousel(loop=loop)
|
||||
for i in range(n_slides):
|
||||
c.add_widget(Widget())
|
||||
c.index = index
|
||||
p_slide = c.previous_slide
|
||||
assert (p_slide and c.slides.index(p_slide)) == index_of_previous_slide
|
||||
n_slide = c.next_slide
|
||||
assert (n_slide and c.slides.index(n_slide)) == index_of_next_slide
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main(args=[
|
||||
__file__,
|
||||
])
|
||||
Reference in New Issue
Block a user