From 9db35ed522a1c681f1b32a5ad396ffa8928b816a Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Mon, 24 Aug 2020 04:10:28 -0700 Subject: [PATCH] Simplify warnings testing --- tests/test_fields.py | 17 +++++------------ tests/test_metadata.py | 5 +---- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/tests/test_fields.py b/tests/test_fields.py index 4271f0e38..a0f9dd8eb 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -2,7 +2,6 @@ import datetime import os import re import uuid -import warnings from decimal import ROUND_DOWN, ROUND_UP, Decimal import pytest @@ -702,23 +701,17 @@ class TestNullableBooleanField(TestBooleanField): class TestNullBooleanField(TestCase): + @pytest.mark.filterwarnings('ignore::rest_framework.RemovedInDRF314Warning') def test_allow_null(self): msg = '`allow_null` is not a valid option.' - - with warnings.catch_warnings(): - warnings.simplefilter('ignore', rest_framework.RemovedInDRF314Warning) - with self.assertRaisesMessage(AssertionError, msg): - serializers.NullBooleanField(allow_null=False) + with self.assertRaisesMessage(AssertionError, msg): + serializers.NullBooleanField(allow_null=False) def test_deprecation_warning(self): - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter('always', rest_framework.RemovedInDRF314Warning) + msg = r"^The `NullBooleanField` is deprecated" + with self.assertWarnsRegex(rest_framework.RemovedInDRF314Warning, msg): serializers.NullBooleanField() - self.assertEqual(len(w), 1) - self.assertIs(w[0].category, rest_framework.RemovedInDRF314Warning) - self.assertIn("The `NullBooleanField` is deprecated", str(w[0].message)) - # String types... diff --git a/tests/test_metadata.py b/tests/test_metadata.py index c3c919fea..9f14eccfb 100644 --- a/tests/test_metadata.py +++ b/tests/test_metadata.py @@ -1,5 +1,3 @@ -import warnings - import pytest from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models @@ -314,8 +312,7 @@ class TestMetadata: class TestSimpleMetadataFieldInfo(TestCase): def test_null_boolean_field_info_type(self): options = metadata.SimpleMetadata() - with warnings.catch_warnings(): - warnings.simplefilter('ignore', RemovedInDRF314Warning) + with self.assertWarns(RemovedInDRF314Warning): field = serializers.NullBooleanField() field_info = options.get_field_info(field) assert field_info['type'] == 'boolean'