Skip to content

Commit 75ce37e

Browse files
committed
switching to already defined setup function for testing
1 parent 91da4e6 commit 75ce37e

File tree

3 files changed

+18
-64
lines changed

3 files changed

+18
-64
lines changed

tcf_website/management/commands/fetch_enrollment.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,14 @@ def fetch_section_data(section):
7676
# Fetch and validate response
7777
response = session.get(url, timeout=TIMEOUT)
7878
response.raise_for_status()
79-
79+
8080
data = response.json()
8181

8282
# Update enrollment data if available
8383
if data and "classes" in data and data["classes"]:
8484
class_data = data["classes"][0]
8585
section_enrollment, _ = SectionEnrollment.objects.get_or_create(section=section)
86-
86+
8787
# Update enrollment and waitlist numbers
8888
section_enrollment.enrollment_taken = class_data.get("enrollment_total", 0)
8989
section_enrollment.enrollment_limit = class_data.get("class_capacity", 0)
@@ -93,7 +93,7 @@ def fetch_section_data(section):
9393

9494
print(format_enrollment_update_message(section, section_enrollment))
9595
return True
96-
96+
9797
except requests.exceptions.HTTPError as http_err:
9898
if http_err.response.status_code == 429:
9999
print(f"Rate limited while fetching section {section.sis_section_number}. Retrying...")
@@ -134,11 +134,11 @@ def handle(self, *args, **options):
134134
semester = Semester.latest()
135135

136136
print(f"Fetching enrollment data for semester {semester}...")
137-
137+
138138
sections = Section.objects.filter(semester=semester)
139139
total_sections = sections.count()
140140
print(f"Found {total_sections} sections")
141-
141+
142142
# Process sections in parallel using ThreadPoolExecutor
143143
success_count = 0
144144
with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
@@ -153,7 +153,7 @@ def handle(self, *args, **options):
153153
print("\nProcess interrupted by user. Shutting down...")
154154
executor.shutdown(wait=False)
155155
return
156-
156+
157157
elapsed_time = time.time() - start_time
158158
print(f"\nSuccessfully updated {success_count}/{total_sections} sections")
159159
print(f"Total time: {elapsed_time:.2f} seconds")
Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,19 @@
11
"""Tests for enrollment data updates."""
22
from unittest.mock import patch
33
from django.test import TestCase
4-
from tcf_website.models import (
5-
Course, Department, School, Section,
6-
SectionEnrollment, Semester, Subdepartment
7-
)
4+
from tcf_website.models import SectionEnrollment
85
from tcf_website.api.enrollment import update_enrollment_data
6+
from .test_utils import setup
97

108

119
class TestEnrollment(TestCase):
1210
"""Test cases for enrollment data updates."""
1311

1412
def setUp(self):
1513
"""Set up test data."""
16-
self.school = School.objects.create(name="Test School")
17-
self.department = Department.objects.create(
18-
name="Test Department",
19-
school=self.school
20-
)
21-
self.subdepartment = Subdepartment.objects.create(
22-
name="Test Subdepartment",
23-
department=self.department
24-
)
25-
self.semester = Semester.objects.create(
26-
number="1234",
27-
year=2025
28-
)
29-
self.course = Course.objects.create(
30-
title="Test Course",
31-
number=101,
32-
subdepartment=self.subdepartment,
33-
semester_last_taught=self.semester
34-
)
35-
self.section = Section.objects.create(
36-
course=self.course,
37-
semester=self.semester,
38-
sis_section_number="99999"
39-
)
14+
setup(self)
15+
# pylint: disable=no-member
16+
self.section = self.section_course
4017
self.enrollment = SectionEnrollment.objects.create(
4118
section=self.section,
4219
enrollment_taken=10,
@@ -54,7 +31,7 @@ def test_mocked_update_enrollment_data(self, mock_fetch):
5431
"waitlist_taken": 5,
5532
"waitlist_limit": 10,
5633
}
57-
update_enrollment_data(self.course.id)
34+
update_enrollment_data(self.section.course.id)
5835
self.enrollment.refresh_from_db()
5936
self.assertEqual(self.enrollment.enrollment_taken, 10)
6037
self.assertEqual(self.enrollment.enrollment_limit, 20)
@@ -63,7 +40,7 @@ def test_mocked_update_enrollment_data(self, mock_fetch):
6340

6441
def test_update_enrollment_data(self):
6542
"""Test enrollment data update with real data."""
66-
update_enrollment_data(self.course.id)
43+
update_enrollment_data(self.section.course.id)
6744
self.enrollment.refresh_from_db()
6845
self.assertGreaterEqual(self.enrollment.enrollment_taken, 0)
6946
self.assertGreaterEqual(self.enrollment.enrollment_limit, 0)

tcf_website/tests/test_fetch_enrollment.py

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,19 @@
22

33
from unittest.mock import patch
44
from django.test import TestCase
5-
from tcf_website.models import (
6-
Course, Department, School, Section,
7-
SectionEnrollment, Semester, Subdepartment
8-
)
5+
from tcf_website.models import SectionEnrollment
96
from tcf_website.management.commands.fetch_enrollment import fetch_section_data
7+
from .test_utils import setup
108

119

1210
class FetchEnrollmentTestCase(TestCase):
1311
"""Tests for the fetch_enrollment command."""
1412

1513
def setUp(self):
1614
"""Set up test data."""
17-
self.school = School.objects.create(name="Test School")
18-
self.department = Department.objects.create(
19-
name="Test Department",
20-
school=self.school
21-
)
22-
self.subdepartment = Subdepartment.objects.create(
23-
name="Test Subdepartment",
24-
department=self.department
25-
)
26-
self.semester = Semester.objects.create(
27-
number="1234",
28-
year=2025
29-
)
30-
self.course = Course.objects.create(
31-
title="Test Course",
32-
number=101,
33-
subdepartment=self.subdepartment,
34-
semester_last_taught=self.semester
35-
)
36-
self.section = Section.objects.create(
37-
course=self.course,
38-
semester=self.semester,
39-
sis_section_number="99999"
40-
)
15+
setup(self)
16+
# pylint: disable=no-member
17+
self.section = self.section_course
4118

4219
@patch('tcf_website.management.commands.fetch_enrollment.session.get')
4320
def test_fetch_enrollment_success(self, mock_get):

0 commit comments

Comments
 (0)