示例#1
0
    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)
示例#2
0
 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)
         ])
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
 def label_tree(label):
     tree = engine._WidgetTree(label, [])
     with engine._storage_manager() as manager:
         return tree, tree.gen_qt_commands(MockRenderContext(manager))
示例#6
0
    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)
            ])