From d16f7c6dfe584217f8f0caac32d4ab74220410e8 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Mon, 17 Aug 2020 20:48:09 -0700 Subject: [PATCH] Test 'NullBooleanField' constructor --- tests/test_fields.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/test_fields.py b/tests/test_fields.py index b3157fd94..4271f0e38 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -2,6 +2,7 @@ import datetime import os import re import uuid +import warnings from decimal import ROUND_DOWN, ROUND_UP, Decimal import pytest @@ -700,6 +701,25 @@ class TestNullableBooleanField(TestBooleanField): field = serializers.BooleanField(allow_null=True) +class TestNullBooleanField(TestCase): + 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) + + def test_deprecation_warning(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always', rest_framework.RemovedInDRF314Warning) + 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... class TestCharField(FieldValues):