diff --git a/ara/tests/unit/test_cli.py b/ara/tests/unit/test_cli.py index cfcb6ca1..ca6e2c41 100644 --- a/ara/tests/unit/test_cli.py +++ b/ara/tests/unit/test_cli.py @@ -14,11 +14,13 @@ import json import os +import pytest import shutil import six -import sys import tempfile +from distutils.version import LooseVersion +from flask_frozen import MissingURLGeneratorWarning from lxml import etree import ara.shell @@ -656,19 +658,11 @@ class TestCLIGenerate(TestAra): # Create a temporary directory for ara generate tests self.generate_dir = tempfile.mkdtemp(prefix='ara') - # Buffer stderr for warning tests - self.stderr = sys.stderr - self.buffer = six.StringIO() - sys.stderr = self.buffer - def tearDown(self): super(TestCLIGenerate, self).tearDown() # Remove the temporary ara generate directory shutil.rmtree(self.generate_dir) - # Reset stderr back to default - sys.stderr = self.stderr - def test_generate_empty_html(self): """ Ensures the application is still rendered gracefully """ self.app.config['ARA_IGNORE_EMPTY_GENERATION'] = False @@ -678,10 +672,18 @@ class TestCLIGenerate(TestAra): cmd = ara.cli.generate.GenerateHtml(shell, None) parser = cmd.get_parser('test') args = parser.parse_args([dir]) - cmd.take_action(args) - output = self.buffer.getvalue().strip() - self.assertIn('MissingURLGeneratorWarning', output) + with pytest.warns(MissingURLGeneratorWarning) as warnings: + cmd.take_action(args) + + # pytest 3.0 through 3.1 are backwards incompatible here + if LooseVersion(pytest.__version__) >= LooseVersion('3.1.0'): + cat = [item._category_name for item in warnings] + self.assertTrue(any('MissingURLGeneratorWarning' in c + for c in cat)) + else: + self.assertTrue(any(MissingURLGeneratorWarning == w.category + for w in warnings)) paths = [ os.path.join(dir, 'index.html'), diff --git a/test-requirements.txt b/test-requirements.txt index 82a03ba9..eb47a065 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,7 +4,7 @@ coverage flake8 ansible-lint mock -pytest==3.0.7 +pytest pytest-cov sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 sphinx-rtd-theme