changeset 5710:9211cc737587

pytest migration: search: use tmpdir fixture instead of 'current dir' The test_empty_search method needs to refer to an existing directory that is guaranteed to not contain a search index. The current implementation chose the 'current' directory '.' but it is more of a hack than careful planning. A temporary empty directory would be cleaner but was more involved to create. With the introduction of pytest-style test classes, this can very easily be improved. Creating a temporary directory with pytest is as simple as accepting the magic 'tmpdir' argument to the test method. This 'tmpdir' is a fixture provided by pytest. The variable is initialized with a py.path.local object referring a temporary directory. For details, see: http://pytest.org/latest/tmpdir.html
author Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
date Wed, 10 Feb 2016 19:26:22 +0100
parents 877bcf22bf71
children 5adc4ad9ce77
files kallithea/tests/functional/test_search.py
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/tests/functional/test_search.py	Wed Feb 10 18:28:42 2016 +0100
+++ b/kallithea/tests/functional/test_search.py	Wed Feb 10 19:26:22 2016 +0100
@@ -3,7 +3,7 @@
 from kallithea.tests import *
 
 
-class TestSearchController(TestController):
+class TestSearchController(TestControllerPytest):
 
     def test_index(self):
         self.log_user()
@@ -12,13 +12,13 @@
         response.mustcontain('class="small" id="q" name="q" type="text"')
         # Test response...
 
-    def test_empty_search(self):
+    def test_empty_search(self, tmpdir):
         self.log_user()
 
         config_mock = {
             'app_conf': {
                 # can be any existing dir that does not contain an actual index
-                'index_dir': '.',
+                'index_dir': str(tmpdir),
             }
         }
         with mock.patch('kallithea.controllers.search.config', config_mock):