def test_icon(self): size = 15 color = (0, 255, 0, 255) rotation = 45 icon = base_components.Icon(name="play", size=15, color=color, rotation=rotation) icon_tree = engine._WidgetTree(icon, []) with engine._storage_manager() as manager: commands = icon_tree.gen_qt_commands(MockRenderContext(manager)) render_img_args = (os.path.join(os.path.abspath(os.path.dirname(base_components.__file__)), "icons/font-awesome/solid/play.svg"), size, color, rotation) self.assertCountEqual( commands, [(icon._render_image, ) + render_img_args, (icon.underlying.setStyleSheet, "QWidget#%s{}" % id(icon)), (icon.underlying.setProperty, "css_class", []), (icon.underlying.style().unpolish, icon.underlying), (icon.underlying.style().polish, icon.underlying), (icon.underlying.setContextMenuPolicy, QtCore.Qt.DefaultContextMenu), (icon.underlying.setCursor, QtCore.Qt.ArrowCursor), (icon._set_on_key_down, icon.underlying, None), (icon._set_on_key_up, icon.underlying, None), (icon._set_on_mouse_enter, icon.underlying, None), (icon._set_on_mouse_leave, icon.underlying, None), (icon._set_on_mouse_down, icon.underlying, None), (icon._set_on_mouse_up, icon.underlying, None), (icon._set_on_mouse_move, icon.underlying, None), (icon._set_on_click, icon.underlying, None), ]) icon._render_image(*render_img_args)
def test_button(self): def on_click(): pass button_str = "asdf" button = base_components.Button(title=button_str, on_click=on_click) button_tree = engine._WidgetTree(button, []) with engine._storage_manager() as manager: commands = button_tree.gen_qt_commands(MockRenderContext(manager)) qt_button = button.underlying font_size = qt_button.font().pointSize() self.assertCountEqual( commands, [(qt_button.setText, button_str), (qt_button.setStyleSheet, "QWidget#%s{}" % id(button)), (qt_button.setProperty, "css_class", []), (qt_button.style().unpolish, qt_button), (qt_button.style().polish, qt_button), (button._set_on_click, qt_button, on_click), (button._set_on_key_down, qt_button, None), (button._set_on_key_up, qt_button, None), (button._set_on_mouse_enter, qt_button, None), (button._set_on_mouse_leave, qt_button, None), (button._set_on_mouse_down, qt_button, None), (button._set_on_mouse_up, qt_button, None), (button._set_on_mouse_move, qt_button, None), (qt_button.setContextMenuPolicy, QtCore.Qt.DefaultContextMenu), (qt_button.setCursor, QtCore.Qt.PointingHandCursor) ])
def test_record(self): class A(object): value = 0 obj = A() with engine._storage_manager() as storage_manager: storage_manager.set(obj, "value", 1) self.assertEqual(obj.value, 1) self.assertEqual(obj.value, 1)
def test_record(self): class A(object): value = 0 obj = A() try: with engine._storage_manager() as storage_manager: storage_manager.set(obj, "value", 1) self.assertEqual(obj.value, 1) raise ValueError except ValueError: pass self.assertEqual(obj.value, 0)
def label_tree(label): tree = engine._WidgetTree(label, []) with engine._storage_manager() as manager: return tree, tree.gen_qt_commands(MockRenderContext(manager))
def test_view_change(self): label1 = base_components.Label(text="A") label2 = base_components.Label(text="B") view = base_components.View()(label1) def label_tree(label): tree = engine._WidgetTree(label, []) with engine._storage_manager() as manager: return tree, tree.gen_qt_commands(MockRenderContext(manager)) label1_tree, label1_commands = label_tree(label1) label2_tree, label2_commands = label_tree(label2) view_tree = engine._WidgetTree(view, [label1_tree]) with engine._storage_manager() as manager: commands = view_tree.gen_qt_commands(MockRenderContext(manager)) font_size = label1.underlying.font().pointSize() self.assertCountEqual(commands, label1_commands + [ (view.underlying.setStyleSheet, "QWidget#%s{}" % id(view)), (view.underlying.setProperty, "css_class", []), (view.underlying.style().unpolish, view.underlying), (view.underlying.style().polish, view.underlying), (view.underlying.setContextMenuPolicy, QtCore.Qt.DefaultContextMenu), (view.underlying.setCursor, QtCore.Qt.ArrowCursor), (view._set_on_key_down, view.underlying, None), (view._set_on_key_up, view.underlying, None), (view._set_on_mouse_enter, view.underlying, None), (view._set_on_mouse_leave, view.underlying, None), (view._set_on_mouse_down, view.underlying, None), (view._set_on_mouse_up, view.underlying, None), (view._set_on_mouse_move, view.underlying, None), (view._set_on_click, view.underlying, None), (view._add_child, 0, label1.underlying)]) view_tree = engine._WidgetTree(view, [label1_tree, label2_tree]) with engine._storage_manager() as manager: commands = view_tree.gen_qt_commands(MockRenderContext(manager)) self.assertCountEqual(commands, label1_commands + label2_commands + [ (view.underlying.setStyleSheet, "QWidget#%s{}" % id(view)), (view.underlying.setProperty, "css_class", []), (view.underlying.style().unpolish, view.underlying), (view.underlying.style().polish, view.underlying), (view.underlying.setContextMenuPolicy, QtCore.Qt.DefaultContextMenu), (view.underlying.setCursor, QtCore.Qt.ArrowCursor), (view._set_on_key_down, view.underlying, None), (view._set_on_key_up, view.underlying, None), (view._set_on_mouse_enter, view.underlying, None), (view._set_on_mouse_leave, view.underlying, None), (view._set_on_mouse_down, view.underlying, None), (view._set_on_mouse_up, view.underlying, None), (view._set_on_mouse_move, view.underlying, None), (view._set_on_click, view.underlying, None), (view._add_child, 1, label2.underlying)]) inner_view = base_components.View() old_child = view_tree.children[0].component view_tree = engine._WidgetTree(view, [label2_tree, engine._WidgetTree(inner_view, [])]) with engine._storage_manager() as manager: commands = view_tree.gen_qt_commands(MockRenderContext(manager)) self.assertCountEqual( commands, label2_commands + [ (view.underlying.setStyleSheet, "QWidget#%s{}" % id(view)), (view.underlying.setProperty, "css_class", []), (view.underlying.style().unpolish, view.underlying), (view.underlying.style().polish, view.underlying), (view.underlying.setContextMenuPolicy, QtCore.Qt.DefaultContextMenu), (view.underlying.setCursor, QtCore.Qt.ArrowCursor), (view._set_on_key_down, view.underlying, None), (view._set_on_key_up, view.underlying, None), (view._set_on_mouse_enter, view.underlying, None), (view._set_on_mouse_leave, view.underlying, None), (view._set_on_mouse_down, view.underlying, None), (view._set_on_mouse_up, view.underlying, None), (view._set_on_mouse_move, view.underlying, None), (view._set_on_click, view.underlying, None), (inner_view.underlying.setStyleSheet, "QWidget#%s{}" % id(inner_view)), (inner_view.underlying.setProperty, "css_class", []), (inner_view.underlying.style().unpolish, inner_view.underlying), (inner_view.underlying.style().polish, inner_view.underlying), (inner_view.underlying.setContextMenuPolicy, QtCore.Qt.DefaultContextMenu), (inner_view.underlying.setCursor, QtCore.Qt.ArrowCursor), (inner_view._set_on_key_down, inner_view.underlying, None), (inner_view._set_on_key_up, inner_view.underlying, None), (inner_view._set_on_mouse_enter, inner_view.underlying, None), (inner_view._set_on_mouse_leave, inner_view.underlying, None), (inner_view._set_on_mouse_down, inner_view.underlying, None), (inner_view._set_on_mouse_up, inner_view.underlying, None), (inner_view._set_on_mouse_move, inner_view.underlying, None), (inner_view._set_on_click, inner_view.underlying, None), (view._delete_child, 0, old_child), (view._add_child, 1, inner_view.underlying) ])