Skip to content

Commit d62269f

Browse files
return root children from v2 req_tree
1 parent 024548d commit d62269f

File tree

1 file changed

+62
-1
lines changed

1 file changed

+62
-1
lines changed

courses/serializers/v1/programs_test.py

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from datetime import timedelta
22
from decimal import Decimal
3+
from unittest.mock import ANY
34

45
import pytest
56
from django.utils.timezone import now
@@ -108,7 +109,7 @@ def test_serialize_program(mock_context, remove_tree, program_with_empty_require
108109
)
109110

110111

111-
def test_program_requirement_tree_serializer_valid():
112+
def test_program_requirement_tree_serializer_save():
112113
"""Verify that the ProgramRequirementTreeSerializer validates data"""
113114
program = ProgramFactory.create()
114115
course1, course2, course3 = CourseFactory.create_batch(3)
@@ -142,6 +143,66 @@ def test_program_requirement_tree_serializer_valid():
142143
serializer.is_valid(raise_exception=True)
143144
serializer.save()
144145

146+
root.refresh_from_db()
147+
assert ProgramRequirementTreeSerializer(instance=root).data == [
148+
{
149+
"data": {
150+
"node_type": "program_root",
151+
"operator": None,
152+
"operator_value": None,
153+
"program": program.id,
154+
"course": None,
155+
"required_program": None,
156+
"title": "",
157+
"elective_flag": False,
158+
},
159+
"id": ANY,
160+
"children": [
161+
{
162+
"data": {
163+
"node_type": "operator",
164+
"operator": "all_of",
165+
"operator_value": None,
166+
"program": program.id,
167+
"course": None,
168+
"required_program": None,
169+
"title": "Required Courses",
170+
"elective_flag": False,
171+
},
172+
"id": ANY,
173+
"children": [
174+
{
175+
"data": {
176+
"node_type": "course",
177+
"operator": None,
178+
"operator_value": None,
179+
"program": program.id,
180+
"course": course1.id,
181+
"required_program": None,
182+
"title": None,
183+
"elective_flag": False,
184+
},
185+
"id": ANY,
186+
}
187+
],
188+
},
189+
{
190+
"data": {
191+
"node_type": "operator",
192+
"operator": "min_number_of",
193+
"operator_value": "1",
194+
"program": program.id,
195+
"course": None,
196+
"required_program": None,
197+
"title": "Elective Courses",
198+
"elective_flag": False,
199+
},
200+
"id": ANY,
201+
},
202+
],
203+
}
204+
]
205+
145206

146207
def test_program_requirement_deletion():
147208
"""Verify that saving the requirements for one program doesn't affect other programs"""

0 commit comments

Comments
 (0)