Ajout du GUI
This commit is contained in:
127
kivy/tests/test_widget.py
Normal file
127
kivy/tests/test_widget.py
Normal file
@@ -0,0 +1,127 @@
|
||||
import unittest
|
||||
from tempfile import mkdtemp
|
||||
from shutil import rmtree
|
||||
|
||||
|
||||
class WidgetTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
from kivy.uix.widget import Widget
|
||||
self.cls = Widget
|
||||
self.root = Widget()
|
||||
|
||||
def test_add_remove_widget(self):
|
||||
root = self.root
|
||||
self.assertEqual(root.children, [])
|
||||
c1 = self.cls()
|
||||
root.add_widget(c1)
|
||||
self.assertEqual(root.children, [c1])
|
||||
root.remove_widget(c1)
|
||||
self.assertEqual(root.children, [])
|
||||
|
||||
def test_invalid_add_widget(self):
|
||||
from kivy.uix.widget import WidgetException
|
||||
try:
|
||||
# None of them should work
|
||||
self.root.add_widget(None)
|
||||
self.root.add_widget(WidgetException)
|
||||
self.root.add_widget(self.cls)
|
||||
self.fail()
|
||||
except WidgetException:
|
||||
pass
|
||||
|
||||
def test_clear_widgets(self):
|
||||
root = self.root
|
||||
self.assertEqual(root.children, [])
|
||||
|
||||
c1 = self.cls()
|
||||
c2 = self.cls()
|
||||
c3 = self.cls()
|
||||
root.add_widget(c1, index=0)
|
||||
root.add_widget(c2, index=1)
|
||||
root.add_widget(c3, index=2)
|
||||
self.assertEqual(root.children, [c1, c2, c3])
|
||||
|
||||
root.clear_widgets([c2])
|
||||
self.assertEqual(root.children, [c1, c3])
|
||||
|
||||
root.clear_widgets([])
|
||||
self.assertEqual(root.children, [c1, c3])
|
||||
|
||||
root.clear_widgets()
|
||||
self.assertEqual(root.children, [])
|
||||
|
||||
def test_clear_widgets_children(self):
|
||||
root = self.root
|
||||
for _ in range(10):
|
||||
root.add_widget(self.cls())
|
||||
self.assertEqual(len(root.children), 10)
|
||||
|
||||
root.clear_widgets(root.children)
|
||||
self.assertEqual(root.children, [])
|
||||
|
||||
def test_position(self):
|
||||
wid = self.root
|
||||
wid.x = 50
|
||||
self.assertEqual(wid.x, 50)
|
||||
self.assertEqual(wid.pos, [50, 0])
|
||||
wid.y = 60
|
||||
self.assertEqual(wid.y, 60)
|
||||
self.assertEqual(wid.pos, [50, 60])
|
||||
wid.pos = (0, 0)
|
||||
self.assertEqual(wid.pos, [0, 0])
|
||||
self.assertEqual(wid.x, 0)
|
||||
self.assertEqual(wid.y, 0)
|
||||
|
||||
def test_size(self):
|
||||
wid = self.root
|
||||
wid.width = 50
|
||||
self.assertEqual(wid.width, 50)
|
||||
self.assertEqual(wid.size, [50, 100])
|
||||
wid.height = 60
|
||||
self.assertEqual(wid.height, 60)
|
||||
self.assertEqual(wid.size, [50, 60])
|
||||
wid.size = (100, 100)
|
||||
self.assertEqual(wid.size, [100, 100])
|
||||
self.assertEqual(wid.width, 100)
|
||||
self.assertEqual(wid.height, 100)
|
||||
|
||||
def test_collision(self):
|
||||
wid = self.root
|
||||
self.assertEqual(wid.pos, [0, 0])
|
||||
self.assertEqual(wid.size, [100, 100])
|
||||
self.assertEqual(wid.collide_point(-1, -1), False)
|
||||
self.assertEqual(wid.collide_point(0, 0), True)
|
||||
self.assertEqual(wid.collide_point(50, 50), True)
|
||||
self.assertEqual(wid.collide_point(100, 100), True)
|
||||
self.assertEqual(wid.collide_point(200, 0), False)
|
||||
self.assertEqual(wid.collide_point(500, 500), False)
|
||||
|
||||
# Currently rejected with a Shader didn't link, but work alone.
|
||||
@unittest.skip("Doesn't work with testsuite, but work alone")
|
||||
def test_export_to_png(self):
|
||||
from kivy.core.image import Image as CoreImage
|
||||
from kivy.uix.button import Button
|
||||
from os.path import join
|
||||
|
||||
wid = Button(text='test', size=(200, 100), size_hint=(None, None))
|
||||
self.root.add_widget(wid)
|
||||
|
||||
tmp = mkdtemp()
|
||||
wid.export_to_png(join(tmp, 'a.png'))
|
||||
wid.export_to_png(join(tmp, 'b.png'), scale=.5)
|
||||
wid.export_to_png(join(tmp, 'c.png'), scale=2)
|
||||
|
||||
self.assertEqual(CoreImage(join(tmp, 'a.png')).size, (200, 100))
|
||||
self.assertEqual(CoreImage(join(tmp, 'b.png')).size, (100, 50))
|
||||
self.assertEqual(CoreImage(join(tmp, 'c.png')).size, (400, 200))
|
||||
rmtree(tmp)
|
||||
|
||||
self.root.remove_widget(wid)
|
||||
|
||||
def test_disabled(self):
|
||||
from kivy.uix.widget import Widget
|
||||
w = Widget(disabled=None)
|
||||
w.disabled = False
|
||||
w.disabled = True
|
||||
self.assertEqual(w.disabled, True)
|
||||
Reference in New Issue
Block a user