diff --git a/tests/data/pyside/app.cgx b/tests/data/pyside/app.cgx index c8b2318..101aa76 100644 --- a/tests/data/pyside/app.cgx +++ b/tests/data/pyside/app.cgx @@ -1,79 +1,77 @@ - + + + diff --git a/tests/pyside/test_pyside_elements.py b/tests/pyside/test_pyside_elements.py index 7b14c69..011ea59 100644 --- a/tests/pyside/test_pyside_elements.py +++ b/tests/pyside/test_pyside_elements.py @@ -1,4 +1,3 @@ -import textwrap from functools import partial import pytest @@ -8,10 +7,7 @@ from PySide6 import QtCore, QtGui, QtWidgets -from collagraph import Collagraph -from collagraph import create_element as h -from collagraph.cgx.cgx import load_from_string -from collagraph.renderers import PySideRenderer +import collagraph as cg def get_current_window(app): @@ -25,16 +21,24 @@ def get_current_window(app): return windows[0] if windows else None -def test_simple_structure(qtbot): - renderer = PySideRenderer(autoshow=False) - gui = Collagraph(renderer=renderer) +def test_simple_structure(qtbot, parse_source): + renderer = cg.PySideRenderer(autoshow=False) + gui = cg.Collagraph(renderer=renderer) container = renderer.create_element("Window") - def Simple(props): - return h("Widget", {"object_name": "simple"}) + Simple, _ = parse_source( + """ + + + """ + ) - gui.render(h(Simple, {}), container) + gui.render(Simple, container) def check_simple_is_child(): simple = container.findChild(QtWidgets.QWidget, name="simple") @@ -44,92 +48,92 @@ def check_simple_is_child(): qtbot.waitUntil(check_simple_is_child, timeout=500) -def test_layouts(qapp, qtbot): - renderer = PySideRenderer(autoshow=False) - gui = Collagraph(renderer=renderer) - - def LayoutExample(props): - # Data to fill the box layout - box = [] - for i in range(1, 5): - box.append(("Button", {"text": f"Button {i}"})) - - # Data to fill the grid layout - grid = [] - for i in range(1, 5): - grid.append(("Label", {"text": f"Line {i}", "grid_index": (i, 0)})) - grid.append(("LineEdit", {"grid_index": (i, 1)})) - grid.append( - ( - "TextEdit", - { - "text": "This widget takes up about two thirds of the grid layout", - "grid_index": (1, 2, 4, 1), - }, - ) - ) - - # Data to fill the form layout - form = [] - for i, widget in enumerate(["LineEdit", "ComboBox", "SpinBox"]): - text = f"Line {i+1}:" - if i == 1: - text = "Line 2, long text:" - form.append((widget, {"form_label": text, "form_index": i})) - - return h( - "Window", - {}, - h( - "Widget", - {}, - h( - "GroupBox", - { - "title": "Horizontal layout", - "object_name": "box", - "layout": { - "type": "Box", - "direction": "LeftToRight", +def test_layouts(qapp, qtbot, parse_source): + renderer = cg.PySideRenderer(autoshow=False) + gui = cg.Collagraph(renderer=renderer) + + LayoutExample, _ = parse_source( + """ + + + + + + + + + + + + + +