This repository has been archived on 2025-02-01. You can view files and clone it, but cannot push or open issues or pull requests.
PyBitmessage-2025-02-01/mockenv/lib/python3.6/site-packages/kivy/tests/test_widget_walk.py
2022-07-22 16:13:59 +05:30

71 lines
1.8 KiB
Python

import unittest
class FileWidgetWalk(unittest.TestCase):
def test_walk_large_tree(self):
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
''' the tree
BoxLayout
BoxLayout
Label
10 labels
BoxLayout
10 labels
BoxLayout
Label
Label
'''
root = BoxLayout()
tree = [root]
box = BoxLayout()
tree.append(box)
root.add_widget(box)
label = Label()
tree.append(label)
root.add_widget(label)
for i in range(10):
tree.append(Label())
label.add_widget(tree[-1])
box = BoxLayout()
tree.append(box)
root.add_widget(box)
for i in range(10):
tree.append(Label())
box.add_widget(tree[-1])
box = BoxLayout()
tree.append(box)
root.add_widget(box)
tree.append(Label())
box.add_widget(tree[-1])
label = Label()
tree.append(label)
root.add_widget(label)
def rotate(l, n):
return l[n:] + l[:n]
for i in range(len(tree)):
rotated = rotate(tree, i) # shift list to start at i
# walk starting with i
walked = [n for n in tree[i].walk(loopback=True)]
walked_reversed = [n for n in tree[i].walk_reverse(loopback=True)]
self.assertListEqual(rotated, walked)
self.assertListEqual(walked, list(reversed(walked_reversed)))
def test_walk_single(self):
from kivy.uix.label import Label
label = Label()
self.assertListEqual([n for n in label.walk(loopback=True)], [label])
self.assertListEqual([n for n in label.walk_reverse(loopback=True)],
[label])