Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
course-discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
course-discovery
Commits
82ee72f0
Commit
82ee72f0
authored
Aug 08, 2016
by
Simon Chen
Committed by
GitHub
Aug 08, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #225 from edx/schen/ECOM-5031api
ECOM-5031 create the serialization for programs api
parents
9e60a62b
1c067950
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
3 deletions
+24
-3
course_discovery/apps/api/serializers.py
+5
-1
course_discovery/apps/api/tests/test_serializers.py
+9
-2
course_discovery/apps/course_metadata/tests/factories.py
+10
-0
No files found.
course_discovery/apps/api/serializers.py
View file @
82ee72f0
...
...
@@ -262,9 +262,13 @@ class ContainedCoursesSerializer(serializers.Serializer):
class
ProgramSerializer
(
serializers
.
ModelSerializer
):
courses
=
CourseSerializer
(
many
=
True
)
authoring_organizations
=
OrganizationSerializer
(
many
=
True
)
class
Meta
:
model
=
Program
fields
=
(
'uuid'
,
'title'
,
'subtitle'
,
'category'
,
'marketing_slug'
,
'marketing_url'
,
'card_image_url'
,)
fields
=
(
'uuid'
,
'title'
,
'subtitle'
,
'category'
,
'marketing_slug'
,
'marketing_url'
,
'card_image_url'
,
'banner_image_url'
,
'authoring_organizations'
,
'courses'
,)
read_only_fields
=
(
'uuid'
,
'marketing_url'
,)
...
...
course_discovery/apps/api/tests/test_serializers.py
View file @
82ee72f0
...
...
@@ -171,8 +171,11 @@ class CourseRunSerializerTests(TestCase):
class
ProgramSerializerTests
(
TestCase
):
def
test_data
(
self
):
program
=
ProgramFactory
()
serializer
=
ProgramSerializer
(
program
)
request
=
make_request
()
org_list
=
OrganizationFactory
.
create_batch
(
1
)
course_list
=
CourseFactory
.
create_batch
(
3
)
program
=
ProgramFactory
(
authoring_organizations
=
org_list
,
courses
=
course_list
)
serializer
=
ProgramSerializer
(
program
,
context
=
{
'request'
:
request
})
expected
=
{
'uuid'
:
str
(
program
.
uuid
),
...
...
@@ -182,7 +185,11 @@ class ProgramSerializerTests(TestCase):
'marketing_slug'
:
program
.
marketing_slug
,
'marketing_url'
:
program
.
marketing_url
,
'card_image_url'
:
program
.
card_image_url
,
'banner_image_url'
:
program
.
banner_image_url
,
'authoring_organizations'
:
OrganizationSerializer
(
program
.
authoring_organizations
,
many
=
True
)
.
data
,
'courses'
:
CourseSerializer
(
program
.
courses
,
many
=
True
,
context
=
{
'request'
:
request
})
.
data
,
}
self
.
assertDictEqual
(
serializer
.
data
,
expected
)
...
...
course_discovery/apps/course_metadata/tests/factories.py
View file @
82ee72f0
...
...
@@ -201,6 +201,16 @@ class ProgramFactory(factory.django.DjangoModelFactory):
for
course_run
in
extracted
:
self
.
excluded_course_runs
.
add
(
course_run
)
@factory.post_generation
def
authoring_organizations
(
self
,
create
,
extracted
,
**
kwargs
):
if
not
create
:
# pragma: no cover
# Simple build, do nothing.
return
if
extracted
:
for
organization
in
extracted
:
self
.
authoring_organizations
.
add
(
organization
)
class
AbstractSocialNetworkModelFactory
(
factory
.
DjangoModelFactory
):
type
=
FuzzyChoice
([
name
for
name
,
__
in
AbstractSocialNetworkModel
.
SOCIAL_NETWORK_CHOICES
])
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment