# HG changeset patch # User Thomas De Schampheleire # Date 2016-02-10 19:26:22 # Node ID 9211cc7375875440265a7c072ed5acf376d77663 # Parent 877bcf22bf710608f6997164d238e244d52a2c31 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 diff --git a/kallithea/tests/functional/test_search.py b/kallithea/tests/functional/test_search.py --- a/kallithea/tests/functional/test_search.py +++ b/kallithea/tests/functional/test_search.py @@ -3,7 +3,7 @@ import os from kallithea.tests import * -class TestSearchController(TestController): +class TestSearchController(TestControllerPytest): def test_index(self): self.log_user() @@ -12,13 +12,13 @@ class TestSearchController(TestControlle 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):