Blob Blame Raw
From e6fb0fe8bc75e7931fe86e95442eec09b49caee7 Mon Sep 17 00:00:00 2001
From: Adam Dangoor <adamdangoor@gmail.com>
Date: Mon, 31 Jul 2017 19:45:24 +0100
Subject: [PATCH 3/3] Catch and test pytest warning

---
 pytest.ini           |  2 --
 tests/test_compat.py | 15 +++++++++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)
 delete mode 100644 pytest.ini

diff --git a/pytest.ini b/pytest.ini
deleted file mode 100644
index 1ceab94..0000000
--- a/pytest.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[pytest]
-addopts = -p no:warnings
diff --git a/tests/test_compat.py b/tests/test_compat.py
index e4ecdc8..d86110a 100644
--- a/tests/test_compat.py
+++ b/tests/test_compat.py
@@ -1,3 +1,5 @@
+import pytest
+
 import click
 
 
@@ -11,10 +13,19 @@ if click.__version__ >= '3.0':
         def cli(foo):
             click.echo(foo)
 
-        result = runner.invoke(cli, ['--foo', 'wat'])
+        with pytest.warns(Warning) as records:
+            result = runner.invoke(cli, ['--foo', 'wat'])
+
+        [warning_record] = records
+        warning_message = str(warning_record.message)
+        assert 'Invoked legacy parameter callback' in warning_message
         assert result.exit_code == 0
+        # Depending on the pytest version, the warning message may be
+        # in `result.output`.
+        #
+        # In pytest version 3.1 pytest started capturing warnings by default.
+        # See https://docs.pytest.org/en/latest/warnings.html#warnings-capture.
         assert 'WAT' in result.output
-        assert 'Invoked legacy parameter callback' in result.output
 
 
 def test_bash_func_name():
-- 
2.14.2