|
26 | 26 | __license__ = "MIT"
|
27 | 27 |
|
28 | 28 | import pytest
|
29 |
| -import weakref |
30 | 29 | from silx.gui import qt
|
31 | 30 | from silx.gui.widgets.FloatEdit import FloatEdit
|
32 | 31 |
|
33 | 32 |
|
34 | 33 | @pytest.fixture
|
35 |
| -def floatEdit(qapp, qapp_utils): |
36 |
| - widget = FloatEdit() |
37 |
| - widget.setAttribute(qt.Qt.WA_DeleteOnClose) |
38 |
| - yield widget |
39 |
| - widget.close() |
40 |
| - ref = weakref.ref(widget) |
41 |
| - widget = None |
42 |
| - qapp_utils.qWaitForDestroy(ref) |
| 34 | +def floatEdit(qWidgetFactory): |
| 35 | + proxy = qWidgetFactory(FloatEdit) |
| 36 | + yield proxy |
43 | 37 |
|
44 | 38 |
|
45 | 39 | @pytest.fixture
|
46 |
| -def holder(qapp, qapp_utils): |
47 |
| - widget = qt.QWidget() |
48 |
| - qt.QHBoxLayout(widget) |
49 |
| - widget.setAttribute(qt.Qt.WA_DeleteOnClose) |
50 |
| - yield widget |
51 |
| - widget.close() |
52 |
| - ref = weakref.ref(widget) |
53 |
| - widget = None |
54 |
| - qapp_utils.qWaitForDestroy(ref) |
| 40 | +def floatEditHolder(qapp, qapp_utils, qWidgetFactory, floatEdit): |
| 41 | + proxy = qWidgetFactory(qt.QWidget) |
| 42 | + holder = proxy.__repr__.__self__ |
| 43 | + layout = qt.QHBoxLayout(holder) |
| 44 | + layout.addStretch() |
| 45 | + layout.addWidget(floatEdit.__repr__.__self__) |
| 46 | + yield proxy |
55 | 47 |
|
56 | 48 |
|
57 | 49 | def test_show(qapp_utils, floatEdit):
|
58 |
| - qapp_utils.qWaitForWindowExposed(floatEdit) |
| 50 | + pass |
59 | 51 |
|
60 | 52 |
|
61 | 53 | def test_value(floatEdit):
|
62 | 54 | floatEdit.setValue(1.5)
|
63 | 55 | assert floatEdit.value() == 1.5
|
64 | 56 |
|
65 | 57 |
|
66 |
| -def test_no_widgetresize(qapp_utils, holder, floatEdit): |
67 |
| - holder.layout().addWidget(floatEdit) |
68 |
| - holder.resize(100, 100) |
69 |
| - holder.show() |
70 |
| - qapp_utils.qWaitForWindowExposed(holder) |
| 58 | +def test_no_widgetresize(qapp_utils, floatEditHolder, floatEdit): |
| 59 | + floatEditHolder.resize(50, 50) |
71 | 60 | floatEdit.setValue(123)
|
72 | 61 | a = floatEdit.width()
|
73 | 62 | floatEdit.setValue(123456789123456789.123456789123456789)
|
74 | 63 | b = floatEdit.width()
|
75 | 64 | assert b == a
|
76 | 65 |
|
77 | 66 |
|
78 |
| -def test_widgetresize(qapp_utils, holder, floatEdit): |
79 |
| - holder.layout().addWidget(floatEdit) |
80 |
| - holder.resize(100, 100) |
81 |
| - holder.show() |
82 |
| - qapp_utils.qWaitForWindowExposed(holder) |
| 67 | +def test_widgetresize(qapp_utils, floatEditHolder, floatEdit): |
| 68 | + floatEditHolder.resize(50, 50) |
83 | 69 | floatEdit.setWidgetResizable(True)
|
| 70 | + # Initial |
84 | 71 | floatEdit.setValue(123)
|
| 72 | + qapp_utils.qWait() |
85 | 73 | a = floatEdit.width()
|
| 74 | + # Grow |
86 | 75 | floatEdit.setValue(123456789123456789.123456789123456789)
|
| 76 | + qapp_utils.qWait() |
87 | 77 | b = floatEdit.width()
|
| 78 | + # Shrink |
| 79 | + floatEdit.setValue(123) |
| 80 | + qapp_utils.qWait() |
| 81 | + c = floatEdit.width() |
88 | 82 | assert b > a
|
| 83 | + assert a <= c < b |
0 commit comments