Skip to content

Commit

Permalink
add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
markotoplak committed Dec 16, 2021
1 parent 19a4016 commit 48835e8
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 2 deletions.
4 changes: 3 additions & 1 deletion Orange/widgets/data/owfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
# module's namespace so that old saved settings still work
from Orange.widgets.utils.filedialogs import RecentPath

DEFAULT_READER_TEXT = "Automatically detect type"

log = logging.getLogger(__name__)


Expand Down Expand Up @@ -474,7 +476,7 @@ def _select_active_sheet(self):
def _initialize_reader_combo(self):
self.reader_combo.clear()
filters = [format_filter(f) for f in self.available_readers]
self.reader_combo.addItems(["Automatically detect type"] + filters)
self.reader_combo.addItems([DEFAULT_READER_TEXT] + filters)
self.reader_combo.setCurrentIndex(0)
self.reader_combo.setDisabled(True)
# additional readers may be added in self._get_reader()
Expand Down
35 changes: 34 additions & 1 deletion Orange/widgets/data/tests/test_owfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

from Orange.data.io import TabReader
from Orange.tests import named_file
from Orange.widgets.data.owfile import OWFile, OWFileDropHandler
from Orange.widgets.data.owfile import OWFile, OWFileDropHandler, DEFAULT_READER_TEXT
from Orange.widgets.utils.filedialogs import dialog_formats, format_filter, RecentPath
from Orange.widgets.tests.base import WidgetTest
from Orange.widgets.utils.domaineditor import ComboDelegate, VarTypeDelegate, VarTableModel
Expand Down Expand Up @@ -382,6 +382,7 @@ def open_iris_with_no_spec_format(_a, _b, _c, filters, _e):
self.widget.browse_file()

self.assertIsNone(self.widget.recent_paths[0].file_format)
self.assertEqual(self.widget.reader_combo.currentText(), DEFAULT_READER_TEXT)

def open_iris_with_tab(*_):
return iris.__file__, format_filter(TabReader)
Expand All @@ -391,6 +392,7 @@ def open_iris_with_tab(*_):
self.widget.browse_file()

self.assertEqual(self.widget.recent_paths[0].file_format, "Orange.data.io.TabReader")
self.assertTrue(self.widget.reader_combo.currentText().startswith("Tab-separated"))

def test_no_specified_reader(self):
with named_file("", suffix=".tab") as fn:
Expand All @@ -399,6 +401,37 @@ def test_no_specified_reader(self):
stored_settings={"recent_paths": [no_class]})
self.widget.load_data()
self.assertTrue(self.widget.Error.missing_reader.is_shown())
self.assertEqual(self.widget.reader_combo.currentText(), "not.a.file.reader.class")

def test_select_reader(self):
filename = FileFormat.locate("iris.tab", dataset_dirs)

# a setting which adds a new qualified name to the reader combo
no_class = RecentPath(filename, None, None, file_format="not.a.file.reader.class")
self.widget = self.create_widget(OWFile,
stored_settings={"recent_paths": [no_class]})
self.widget.load_data()
len_with_qname = len(self.widget.reader_combo)
self.assertEqual(self.widget.reader_combo.currentText(), "not.a.file.reader.class")
self.assertEqual(self.widget.reader, None)

# select the last option, the same reader
self.widget.reader_combo.activated.emit(len_with_qname - 1)
self.assertEqual(len(self.widget.reader_combo), len_with_qname)
self.assertEqual(self.widget.reader_combo.currentText(), "not.a.file.reader.class")
self.assertEqual(self.widget.reader, None)

# select the tab reader
self.widget.reader_combo.activated.emit(1)
self.assertEqual(len(self.widget.reader_combo), len_with_qname - 1)
self.assertTrue(self.widget.reader_combo.currentText().startswith("Tab-separated"))
self.assertIsInstance(self.widget.reader, TabReader)

# select the default reader
self.widget.reader_combo.activated.emit(0)
self.assertEqual(len(self.widget.reader_combo), len_with_qname - 1)
self.assertEqual(self.widget.reader_combo.currentText(), DEFAULT_READER_TEXT)
self.assertIsInstance(self.widget.reader, TabReader)

def test_domain_edit_no_changes(self):
self.open_dataset("iris")
Expand Down

0 comments on commit 48835e8

Please sign in to comment.