diff --git a/django_countries/tests/test_widgets.py b/django_countries/tests/test_widgets.py
index 47313e79..4ec9806e 100644
--- a/django_countries/tests/test_widgets.py
+++ b/django_countries/tests/test_widgets.py
@@ -9,7 +9,7 @@
from distutils.version import StrictVersion
import django
from django.forms.models import modelform_factory
-from django.test import TestCase
+from django.test import TestCase, override_settings
from django.utils import safestring
from django.utils.html import escape
@@ -73,3 +73,73 @@ def test_required_attribute(self):
rendered = self.Form()["country"].as_widget()
rendered = rendered[: rendered.find(">") + 1]
self.assertIn("required", rendered)
+
+
+class TestDefaultSelectWidget(TestCase):
+ def setUp(self):
+ del countries.countries
+
+ def tearDown(self):
+ del countries.countries
+
+ def setup_form(self):
+ """
+ Setup form for use in tests
+ Note that this isn't in setUp so that we can call it inside of a settings override scope.
+ """
+ self.Form = modelform_factory(Person, fields=["country"])
+
+ def test_is_default_widget(self):
+ self.setup_form()
+
+ widget = self.Form().fields["country"].widget
+ self.assertNotIsInstance(widget, widgets.CountrySelectWidget)
+ self.assertIsInstance(widget, widgets.LazySelect)
+
+ @skipIf(
+ StrictVersion(django.get_version()) < StrictVersion("1.10"),
+ "required attribute only implemented in 1.10+",
+ )
+ @override_settings(COUNTRIES_ONLY=["NZ", "AU"])
+ def test_required_attribute(self):
+ self.setup_form()
+ rendered = self.Form()["country"].as_widget()
+ rendered_first_tag = rendered[: rendered.find(">") + 1]
+ self.assertIn("required", rendered_first_tag)
+
+ self.assertHTMLEqual(
+ """
+
+ """,
+ rendered,
+ )
+
+ @skipIf(
+ StrictVersion(django.get_version()) < StrictVersion("1.10"),
+ "required attribute only implemented in 1.10+",
+ )
+ @override_settings(
+ COUNTRIES_FIRST=["NZ"],
+ COUNTRIES_ONLY=["NZ", "AU"],
+ COUNTRIES_FIRST_BREAK="-----",
+ )
+ def test_required_attribute_with_countries_first_break(self):
+ self.setup_form()
+ rendered = self.Form()["country"].as_widget()
+ rendered_first_tag = rendered[: rendered.find(">") + 1]
+ self.assertIn("required", rendered_first_tag)
+
+ self.assertHTMLEqual(
+ """
+
+ """,
+ rendered,
+ )