|
1 | 1 | import sys
|
2 | 2 | import os
|
3 | 3 | import pytest
|
4 | | -from PySide2.QtWidgets import QApplication, QMessageBox |
| 4 | +from PySide2.QtWidgets import QApplication, QMessageBox, QWidget |
5 | 5 | from PySide2.QtCore import Qt
|
| 6 | +from PySide2.QtCore import Qt |
| 7 | +from PySide2.QtTest import QTest |
6 | 8 |
|
7 | 9 | # Add the src directory to the Python path
|
8 | 10 | sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../src")))
|
@@ -157,51 +159,58 @@ def test_function_with_spaces(function_plotter, qtbot):
|
157 | 159 | # bad input tests
|
158 | 160 |
|
159 | 161 |
|
160 | | -# def test_invalid_function_input_characters(function_plotter, qtbot): |
161 | | -# function_plotter.function_input.setText("5*x^3 + 2*x + !") |
162 | | -# function_plotter.min_input.setText("0") |
163 | | -# function_plotter.max_input.setText("10") |
164 | | -# qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
165 | | -# qtbot.waitUntil(lambda: function_plotter.centralWidget().findChildren(QMessageBox)) |
166 | | -# message_box = function_plotter.centralWidget().findChildren(QMessageBox)[0] |
167 | | -# assert "Function contains invalid characters." in message_box.text() |
168 | | - |
169 | | - |
170 | | -# def test_empty_function_input(function_plotter, qtbot): |
171 | | -# function_plotter.function_input.setText("") |
172 | | -# function_plotter.min_input.setText("0") |
173 | | -# function_plotter.max_input.setText("10") |
174 | | -# qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
175 | | -# qtbot.waitUntil(lambda: function_plotter.centralWidget().findChildren(QMessageBox)) |
176 | | -# message_box = function_plotter.centralWidget().findChildren(QMessageBox)[0] |
177 | | -# assert "Function cannot be empty." in message_box.text() |
178 | | - |
179 | | - |
180 | | -# def test_invalid_min_max_values(function_plotter, qtbot): |
181 | | -# function_plotter.function_input.setText("5*x^3 + 2*x") |
182 | | -# function_plotter.min_input.setText("10") |
183 | | -# function_plotter.max_input.setText("0") |
184 | | -# qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
185 | | -# qtbot.waitUntil(lambda: function_plotter.centralWidget().findChildren(QMessageBox)) |
186 | | -# message_box = function_plotter.centralWidget().findChildren(QMessageBox)[0] |
187 | | -# assert "Min value must be less than Max value." in message_box.text() |
188 | | - |
189 | | - |
190 | | -# def test_non_numeric_min_max_values(function_plotter, qtbot): |
191 | | -# function_plotter.function_input.setText("5*x^3 + 2*x") |
192 | | -# function_plotter.min_input.setText("a") |
193 | | -# function_plotter.max_input.setText("b") |
194 | | -# qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
195 | | -# qtbot.waitUntil(lambda: function_plotter.centralWidget().findChildren(QMessageBox)) |
196 | | -# message_box = function_plotter.centralWidget().findChildren(QMessageBox)[0] |
197 | | -# assert "Min and Max values must be numbers." in message_box.text() |
198 | | - |
199 | | - |
200 | | -# def test_empty_min_max_values(function_plotter, qtbot): |
201 | | -# function_plotter.function_input.setText("x^2") |
202 | | -# function_plotter.min_input.setText("") |
203 | | -# function_plotter.max_input.setText("") |
204 | | -# qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
205 | | -# qtbot.waitUntil(lambda: function_plotter.centralWidget().findChildren(QMessageBox)) |
206 | | -# message_box = function_plotter.centralWidget().findChildren(QMessageBox)[0] |
207 | | -# assert "Min and Max values cannot be empty." in message_box.text() |
| 162 | +def test_invalid_function_input_characters(function_plotter, qtbot): |
| 163 | + with qtbot.wait_signal( |
| 164 | + function_plotter.error_message_signal, timeout=5000 |
| 165 | + ) as blocker: |
| 166 | + function_plotter.function_input.setText("5*x^3 + 2*x + !") |
| 167 | + function_plotter.min_input.setText("0") |
| 168 | + function_plotter.max_input.setText("10") |
| 169 | + qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
| 170 | + assert blocker.args[0] == "Function contains invalid characters." |
| 171 | + |
| 172 | + |
| 173 | +def test_empty_function_input(function_plotter, qtbot): |
| 174 | + with qtbot.wait_signal( |
| 175 | + function_plotter.error_message_signal, timeout=5000 |
| 176 | + ) as blocker: |
| 177 | + function_plotter.function_input.setText("") |
| 178 | + function_plotter.min_input.setText("0") |
| 179 | + function_plotter.max_input.setText("10") |
| 180 | + qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
| 181 | + assert blocker.args[0] == "Function cannot be empty." |
| 182 | + |
| 183 | + |
| 184 | +def test_invalid_min_max_values(function_plotter, qtbot): |
| 185 | + with qtbot.wait_signal( |
| 186 | + function_plotter.error_message_signal, timeout=5000 |
| 187 | + ) as blocker: |
| 188 | + function_plotter.function_input.setText("5*x^3 + 2*x") |
| 189 | + function_plotter.min_input.setText("10") |
| 190 | + function_plotter.max_input.setText("0") |
| 191 | + qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
| 192 | + assert blocker.args[0] == "Min value must be less than Max value." |
| 193 | + |
| 194 | + |
| 195 | +def test_non_numeric_min_max_values(function_plotter, qtbot): |
| 196 | + with qtbot.wait_signal( |
| 197 | + function_plotter.error_message_signal, timeout=5000 |
| 198 | + ) as blocker: |
| 199 | + function_plotter.function_input.setText("5*x^3 + 2*x") |
| 200 | + function_plotter.min_input.setText("a") |
| 201 | + function_plotter.max_input.setText("b") |
| 202 | + qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
| 203 | + assert blocker.args[0] == "Min and Max values must be numbers." |
| 204 | + |
| 205 | + |
| 206 | +def test_empty_min_max_values(function_plotter, qtbot): |
| 207 | + with qtbot.wait_signal( |
| 208 | + function_plotter.error_message_signal, timeout=5000 |
| 209 | + ) as blocker: |
| 210 | + function_plotter.function_input.setText("x^2") |
| 211 | + function_plotter.min_input.setText("") |
| 212 | + function_plotter.max_input.setText("") |
| 213 | + qtbot.mouseClick(function_plotter.plot_button, Qt.LeftButton) |
| 214 | + assert blocker.args[0] == "Min and Max values cannot be empty." |
| 215 | + |
| 216 | + |
0 commit comments