Skip to content

Commit a258737

Browse files
fsecada01claude
andcommitted
fix: ROOT_URLCONF session fixture, error=None cleanup in form tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 88e1e15 commit a258737

2 files changed

Lines changed: 24 additions & 10 deletions

File tree

tests/integration/conftest.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
settings modules.
1515
1616
The ROOT_URLCONF setting differs: unit tests don't set it, integration tests
17-
need it. We patch it in a session-scoped fixture below so that the integration
18-
URL routing works in both cases.
17+
need it. The session-scoped fixture below ensures ROOT_URLCONF is set for all
18+
integration tests regardless of which conftest configured Django first.
1919
"""
2020
import os
2121

2222
import django
23+
import pytest
2324
from django.conf import settings
2425

2526

@@ -30,3 +31,16 @@ def pytest_configure(config):
3031
"tests.integration.cotton_app.settings",
3132
)
3233
django.setup()
34+
35+
36+
@pytest.fixture(scope="session", autouse=True)
37+
def _set_root_urlconf():
38+
"""Ensure ROOT_URLCONF is set for integration URL routing."""
39+
original = getattr(settings, "ROOT_URLCONF", None)
40+
settings.ROOT_URLCONF = "tests.integration.cotton_app.urls"
41+
yield
42+
if original is None:
43+
if hasattr(settings, "ROOT_URLCONF"):
44+
delattr(settings, "ROOT_URLCONF")
45+
else:
46+
settings.ROOT_URLCONF = original

tests/unit/jinja/test_forms.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33

44
def test_form_field_renders_label(render):
55
html = render("FormField.jinja", name="email", label="Email Address",
6-
value="", error=None, type="text", required=False, extra_class="")
6+
value="", error="", type="text", required=False, extra_class="")
77
assert "Email Address" in html
88
assert '<label class="label"' in html
99

1010

1111
def test_form_field_renders_input(render):
1212
html = render("FormField.jinja", name="email", label="Email",
13-
value="test@example.com", error=None, type="email",
13+
value="test@example.com", error="", type="email",
1414
required=False, extra_class="")
1515
assert 'name="email"' in html
1616
assert 'type="email"' in html
@@ -28,20 +28,20 @@ def test_form_field_shows_error(render):
2828

2929
def test_form_field_no_error_omits_danger(render):
3030
html = render("FormField.jinja", name="email", label="Email",
31-
value="", error=None, type="text", required=False, extra_class="")
31+
value="", error="", type="text", required=False, extra_class="")
3232
assert "is-danger" not in html
3333

3434

3535
def test_form_field_required_attribute(render):
3636
html = render("FormField.jinja", name="email", label="Email",
37-
value="", error=None, type="text", required=True, extra_class="")
37+
value="", error="", type="text", required=True, extra_class="")
3838
assert "required" in html
3939

4040

4141
def test_select_renders_options(render):
4242
options = [{"value": "a", "label": "Option A"}, {"value": "b", "label": "Option B"}]
4343
html = render("Select.jinja", name="choice", label="Choose",
44-
value="a", error=None, options=options, extra_class="")
44+
value="a", error="", options=options, extra_class="")
4545
assert "Option A" in html
4646
assert "Option B" in html
4747
assert 'value="a"' in html
@@ -57,7 +57,7 @@ def test_select_shows_error(render):
5757

5858
def test_textarea_renders_value(render):
5959
html = render("Textarea.jinja", name="bio", label="Bio",
60-
value="Hello world", error=None, rows=4, extra_class="")
60+
value="Hello world", error="", rows=4, extra_class="")
6161
assert "Hello world" in html
6262
assert 'name="bio"' in html
6363
assert 'rows="4"' in html
@@ -73,7 +73,7 @@ def test_textarea_shows_error(render):
7373
def test_checkbox_group_renders_choices(render):
7474
choices = [{"value": "a", "label": "Apple"}, {"value": "b", "label": "Banana"}]
7575
html = render("CheckboxGroup.jinja", name="fruits", label="Fruits",
76-
choices=choices, selected=["a"], error=None, extra_class="")
76+
choices=choices, selected=["a"], error="", extra_class="")
7777
assert "Apple" in html
7878
assert "Banana" in html
7979
assert 'value="a"' in html
@@ -83,7 +83,7 @@ def test_checkbox_group_renders_choices(render):
8383
def test_checkbox_group_unchecked_item(render):
8484
choices = [{"value": "a", "label": "Apple"}, {"value": "b", "label": "Banana"}]
8585
html = render("CheckboxGroup.jinja", name="fruits", label="Fruits",
86-
choices=choices, selected=["a"], error=None, extra_class="")
86+
choices=choices, selected=["a"], error="", extra_class="")
8787
assert html.count("checked") == 1
8888

8989

0 commit comments

Comments
 (0)