Mercurial > kallithea
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):