Skip to content

Commit 4f20fdd

Browse files
committed
SQL: Test AUTO_DL_LIMIT
1 parent b6a0ade commit 4f20fdd

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])
@@ -173,6 +177,36 @@ def test_table_text(self, mocked_backends: mock.Mock):
173177
self.assertIsInstance(output, Table)
174178
self.assertEqual(len(output), 101)
175179

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

177211
if __name__ == "__main__":
178212
unittest.main()

0 commit comments

Comments
 (0)