From 63ce7d6e02330d9de69c8bdc728ca9dd0d100c18 Mon Sep 17 00:00:00 2001 From: Raphael Pierzina Date: Wed, 8 Apr 2015 23:55:44 +0200 Subject: [PATCH 1/5] Remove unittest methods in favor of pytest assert statements --- tests/utils/test_jinja.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/tests/utils/test_jinja.py b/tests/utils/test_jinja.py index eee703cdf..2d2c287c3 100644 --- a/tests/utils/test_jinja.py +++ b/tests/utils/test_jinja.py @@ -20,7 +20,6 @@ """Tests for qutebrowser.utils.jinja.""" import os.path -import unittest import unittest.mock from qutebrowser.utils import jinja @@ -35,7 +34,7 @@ def _read_file(path): @unittest.mock.patch('qutebrowser.utils.jinja.utils.read_file') -class JinjaTests(unittest.TestCase): +class JinjaTests(object): """Tests for getting template via jinja.""" @@ -45,7 +44,7 @@ class JinjaTests(unittest.TestCase): template = jinja.env.get_template('test.html') # https://bitbucket.org/logilab/pylint/issue/490/ data = template.render(var='World') # pylint: disable=no-member - self.assertEqual(data, "Hello World") + assert data == "Hello World" def test_utf8(self, readfile_mock): """Test rendering with an UTF8 template. @@ -59,8 +58,4 @@ class JinjaTests(unittest.TestCase): template = jinja.env.get_template('test.html') # https://bitbucket.org/logilab/pylint/issue/490/ data = template.render(var='\u2603') # pylint: disable=no-member - self.assertEqual(data, "Hello \u2603") - - -if __name__ == '__main__': - unittest.main() + assert data == "Hello \u2603" From d91400c3beaef80ce3dd9bce32e17108d7763717 Mon Sep 17 00:00:00 2001 From: Raphael Pierzina Date: Thu, 9 Apr 2015 00:32:24 +0200 Subject: [PATCH 2/5] Use pytest monkeypatch instead of unittest.mock.patch --- tests/utils/test_jinja.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/utils/test_jinja.py b/tests/utils/test_jinja.py index 2d2c287c3..b56d1cf83 100644 --- a/tests/utils/test_jinja.py +++ b/tests/utils/test_jinja.py @@ -20,7 +20,6 @@ """Tests for qutebrowser.utils.jinja.""" import os.path -import unittest.mock from qutebrowser.utils import jinja @@ -33,20 +32,22 @@ def _read_file(path): raise ValueError("Invalid path {}!".format(path)) -@unittest.mock.patch('qutebrowser.utils.jinja.utils.read_file') class JinjaTests(object): """Tests for getting template via jinja.""" - def test_simple_template(self, readfile_mock): + def test_simple_template(self, monkeypatch): """Test with a simple template.""" - readfile_mock.side_effect = _read_file + monkeypatch.setattr( + 'qutebrowser.utils.jinja.utils.read_file', + _read_file + ) template = jinja.env.get_template('test.html') # https://bitbucket.org/logilab/pylint/issue/490/ data = template.render(var='World') # pylint: disable=no-member assert data == "Hello World" - def test_utf8(self, readfile_mock): + def test_utf8(self, monkeypatch): """Test rendering with an UTF8 template. This was an attempt to get a failing test case for #127 but it seems @@ -54,7 +55,10 @@ class JinjaTests(object): https://github.com/The-Compiler/qutebrowser/issues/127 """ - readfile_mock.side_effect = _read_file + monkeypatch.setattr( + 'qutebrowser.utils.jinja.utils.read_file', + _read_file + ) template = jinja.env.get_template('test.html') # https://bitbucket.org/logilab/pylint/issue/490/ data = template.render(var='\u2603') # pylint: disable=no-member From c3e615dfa3b1aadf5702a970226bd783368d53cc Mon Sep 17 00:00:00 2001 From: Raphael Pierzina Date: Thu, 9 Apr 2015 00:38:57 +0200 Subject: [PATCH 3/5] Remove the test class from test_jinja.py --- tests/utils/test_jinja.py | 51 ++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/tests/utils/test_jinja.py b/tests/utils/test_jinja.py index b56d1cf83..ad04061e4 100644 --- a/tests/utils/test_jinja.py +++ b/tests/utils/test_jinja.py @@ -32,34 +32,31 @@ def _read_file(path): raise ValueError("Invalid path {}!".format(path)) -class JinjaTests(object): +def test_simple_template(monkeypatch): + """Test with a simple template.""" + monkeypatch.setattr( + 'qutebrowser.utils.jinja.utils.read_file', + _read_file + ) + template = jinja.env.get_template('test.html') + # https://bitbucket.org/logilab/pylint/issue/490/ + data = template.render(var='World') # pylint: disable=no-member + assert data == "Hello World" - """Tests for getting template via jinja.""" - def test_simple_template(self, monkeypatch): - """Test with a simple template.""" - monkeypatch.setattr( - 'qutebrowser.utils.jinja.utils.read_file', - _read_file - ) - template = jinja.env.get_template('test.html') - # https://bitbucket.org/logilab/pylint/issue/490/ - data = template.render(var='World') # pylint: disable=no-member - assert data == "Hello World" +def test_utf8(monkeypatch): + """Test rendering with an UTF8 template. - def test_utf8(self, monkeypatch): - """Test rendering with an UTF8 template. + This was an attempt to get a failing test case for #127 but it seems + the issue is elsewhere. - This was an attempt to get a failing test case for #127 but it seems - the issue is elsewhere. - - https://github.com/The-Compiler/qutebrowser/issues/127 - """ - monkeypatch.setattr( - 'qutebrowser.utils.jinja.utils.read_file', - _read_file - ) - template = jinja.env.get_template('test.html') - # https://bitbucket.org/logilab/pylint/issue/490/ - data = template.render(var='\u2603') # pylint: disable=no-member - assert data == "Hello \u2603" + https://github.com/The-Compiler/qutebrowser/issues/127 + """ + monkeypatch.setattr( + 'qutebrowser.utils.jinja.utils.read_file', + _read_file + ) + template = jinja.env.get_template('test.html') + # https://bitbucket.org/logilab/pylint/issue/490/ + data = template.render(var='\u2603') # pylint: disable=no-member + assert data == "Hello \u2603" From b18c1254a46208c295e64a90ac9d32d94d4f6fc8 Mon Sep 17 00:00:00 2001 From: Raphael Pierzina Date: Thu, 9 Apr 2015 00:46:48 +0200 Subject: [PATCH 4/5] Use an autofixture that monkeypatches read_file for both tests --- tests/utils/test_jinja.py | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/tests/utils/test_jinja.py b/tests/utils/test_jinja.py index ad04061e4..27d2bdaee 100644 --- a/tests/utils/test_jinja.py +++ b/tests/utils/test_jinja.py @@ -21,30 +21,32 @@ import os.path +import pytest + from qutebrowser.utils import jinja -def _read_file(path): - """Mocked utils.read_file.""" - if path == os.path.join('html', 'test.html'): - return """Hello {{var}}""" - else: - raise ValueError("Invalid path {}!".format(path)) +@pytest.fixture(autouse=True) +def patch_read_file(monkeypatch): + def _read_file(path): + """Mocked utils.read_file.""" + if path == os.path.join('html', 'test.html'): + return """Hello {{var}}""" + else: + raise ValueError("Invalid path {}!".format(path)) + + monkeypatch.setattr('qutebrowser.utils.jinja.utils.read_file', _read_file) -def test_simple_template(monkeypatch): +def test_simple_template(): """Test with a simple template.""" - monkeypatch.setattr( - 'qutebrowser.utils.jinja.utils.read_file', - _read_file - ) template = jinja.env.get_template('test.html') # https://bitbucket.org/logilab/pylint/issue/490/ data = template.render(var='World') # pylint: disable=no-member assert data == "Hello World" -def test_utf8(monkeypatch): +def test_utf8(): """Test rendering with an UTF8 template. This was an attempt to get a failing test case for #127 but it seems @@ -52,10 +54,6 @@ def test_utf8(monkeypatch): https://github.com/The-Compiler/qutebrowser/issues/127 """ - monkeypatch.setattr( - 'qutebrowser.utils.jinja.utils.read_file', - _read_file - ) template = jinja.env.get_template('test.html') # https://bitbucket.org/logilab/pylint/issue/490/ data = template.render(var='\u2603') # pylint: disable=no-member From 44a6617184a5f46a942ee68d8852920d0b5ff12f Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 9 Apr 2015 06:53:21 +0200 Subject: [PATCH 5/5] Add docstring for patch_read_file. --- tests/utils/test_jinja.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/utils/test_jinja.py b/tests/utils/test_jinja.py index 27d2bdaee..174a44df2 100644 --- a/tests/utils/test_jinja.py +++ b/tests/utils/test_jinja.py @@ -28,8 +28,9 @@ from qutebrowser.utils import jinja @pytest.fixture(autouse=True) def patch_read_file(monkeypatch): + """pytest fixture to patch utils.read_file.""" def _read_file(path): - """Mocked utils.read_file.""" + """A read_file which returns a simple template if the path is right.""" if path == os.path.join('html', 'test.html'): return """Hello {{var}}""" else: