Skip to content

Commit 46b05d5

Browse files
committed
tests/owcsvimport: Use named_file to create a temp settings file
1 parent 202b294 commit 46b05d5

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

Orange/widgets/data/tests/test_owcsvimport.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import unittest
22
from unittest import mock
3+
from contextlib import ExitStack
34

45
import os
56
import io
@@ -11,6 +12,7 @@
1112

1213
from AnyQt.QtCore import QSettings
1314

15+
from Orange.tests import named_file
1416
from Orange.widgets.tests.base import WidgetTest, GuiTest
1517
from Orange.widgets.data import owcsvimport
1618
from Orange.widgets.data.owcsvimport import (
@@ -21,18 +23,20 @@
2123

2224
class TestOWCSVFileImport(WidgetTest):
2325
def setUp(self):
24-
# patch `_local_settings` to avoid side effects
25-
s = QSettings(os.devnull, QSettings.IniFormat)
26-
self._patch = mock.patch.object(
27-
owcsvimport.OWCSVFileImport, "_local_settings", lambda *a: s)
28-
self._patch.__enter__()
26+
self._stack = ExitStack().__enter__()
27+
# patch `_local_settings` to avoid side effects, across tests
28+
fname = self._stack.enter_context(named_file(""))
29+
s = QSettings(fname, QSettings.IniFormat)
30+
self._stack.enter_context(mock.patch.object(
31+
owcsvimport.OWCSVFileImport, "_local_settings", lambda *a: s
32+
))
2933
self.widget = self.create_widget(owcsvimport.OWCSVFileImport)
3034

3135
def tearDown(self):
3236
self.widgets.remove(self.widget)
3337
self.widget.onDeleteWidget()
3438
self.widget = None
35-
self._patch.__exit__()
39+
self._stack.close()
3640

3741
def test_basic(self):
3842
w = self.widget

0 commit comments

Comments
 (0)