Skip to content

Commit b892862

Browse files
committed
SQL: Test AUTO_DL_LIMIT
1 parent 702e50d commit b892862

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

Orange/widgets/data/tests/test_owsql.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
from Orange.widgets.tests.base import WidgetTest, simulate
1010
from Orange.tests.sql.base import DataBaseTest as dbt
1111

12+
mock_msgbox = mock.MagicMock()
13+
mock_msgbox().addButton.return_value = "NO"
14+
mock_msgbox().clickedButton.return_value = "NO"
15+
1216

1317
def mock_sqltable(*args, **_):
1418
table = Table(args[1])
@@ -170,6 +174,36 @@ def test_table_text(self, mocked_backends: mock.Mock):
170174
self.assertIsInstance(output, Table)
171175
self.assertEqual(len(output), 101)
172176

177+
@mock.patch('Orange.widgets.data.owsql.AUTO_DL_LIMIT', 120)
178+
@mock.patch('Orange.widgets.data.owsql.is_postgres',
179+
mock.Mock(return_value=True))
180+
@mock.patch('Orange.widgets.data.owsql.QMessageBox', mock_msgbox)
181+
@mock.patch('Orange.widgets.data.owsql.SqlTable',
182+
mock.Mock(side_effect=mock_sqltable))
183+
@mock.patch('Orange.widgets.data.owsql.Backend')
184+
def test_auto_dl_limit(self, mocked_backends: mock.Mock):
185+
backend = mock.Mock()
186+
backend().display_name = "Dummy Backend"
187+
backend().list_tables.return_value = ["iris", "zoo", "titanic"]
188+
backend().n_tables.return_value = 3
189+
mocked_backends.available_backends.return_value = [backend]
190+
191+
settings = {"selected_backend": "Dummy Backend",
192+
"host": "host", "port": "port", "database": "DB",
193+
"schema": "", "username": "username",
194+
"password": "password"}
195+
widget: OWSql = self.create_widget(OWSql, stored_settings=settings)
196+
widget.tablecombo.setCurrentIndex(2)
197+
widget.select_table()
198+
output = self.get_output(widget.Outputs.data, widget=widget)
199+
self.assertIsInstance(output, Table)
200+
self.assertEqual(len(output), 101)
201+
202+
widget.tablecombo.setCurrentIndex(1)
203+
widget.select_table()
204+
output = self.get_output(widget.Outputs.data, widget=widget)
205+
self.assertIsNone(output)
206+
173207

174208
if __name__ == "__main__":
175209
unittest.main()

0 commit comments

Comments
 (0)