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
6e9fc9ce
Commit
6e9fc9ce
authored
Aug 24, 2016
by
mikedikan
Committed by
GitHub
Aug 24, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #274 from edx/mdikan/add-program-about-page-fields
Adding data to program endpoint for program about page
parents
c220b94c
c5597e09
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
51 additions
and
9 deletions
+51
-9
course_discovery/apps/api/serializers.py
+15
-5
course_discovery/apps/api/tests/test_serializers.py
+36
-4
No files found.
course_discovery/apps/api/serializers.py
View file @
6e9fc9ce
...
...
@@ -13,7 +13,7 @@ from course_discovery.apps.api.fields import StdImageSerializerField, ImageField
from
course_discovery.apps.catalogs.models
import
Catalog
from
course_discovery.apps.course_metadata.models
import
(
Course
,
CourseRun
,
Image
,
Organization
,
Person
,
Prerequisite
,
Seat
,
Subject
,
Video
,
Program
,
ProgramType
,
FAQ
,
CorporateEndorsement
,
Endorsement
CorporateEndorsement
,
Endorsement
,
Position
)
from
course_discovery.apps.course_metadata.search_indexes
import
CourseIndex
,
CourseRunIndex
,
ProgramIndex
...
...
@@ -104,11 +104,12 @@ class FAQSerializer(serializers.ModelSerializer):
fields
=
(
'question'
,
'answer'
,)
class
SubjectSerializer
(
Named
ModelSerializer
):
class
SubjectSerializer
(
serializers
.
ModelSerializer
):
"""Serializer for the ``Subject`` model."""
class
Meta
(
NamedModelSerializer
.
Meta
):
class
Meta
(
object
):
model
=
Subject
fields
=
(
'name'
,
'subtitle'
,
'description'
,
'banner_image_url'
,
'card_image_url'
,
'slug'
,)
class
PrerequisiteSerializer
(
NamedModelSerializer
):
...
...
@@ -143,12 +144,21 @@ class VideoSerializer(MediaSerializer):
fields
=
(
'src'
,
'description'
,
'image'
,)
class
PositionSerializer
(
serializers
.
ModelSerializer
):
"""Serializer for the ``Position`` model."""
class
Meta
(
object
):
model
=
Position
fields
=
(
'title'
,
'organization_name'
,)
class
PersonSerializer
(
serializers
.
ModelSerializer
):
"""Serializer for the ``Person`` model."""
position
=
PositionSerializer
()
class
Meta
(
object
):
model
=
Person
fields
=
(
'uuid'
,
'given_name'
,
'family_name'
,
'bio'
,
'profile_image_url'
,
'slug'
,)
fields
=
(
'uuid'
,
'given_name'
,
'family_name'
,
'bio'
,
'profile_image_url'
,
'slug'
,
'position'
)
class
EndorsementSerializer
(
serializers
.
ModelSerializer
):
...
...
@@ -195,7 +205,7 @@ class OrganizationSerializer(TaggitSerializer, serializers.ModelSerializer):
class
Meta
(
object
):
model
=
Organization
fields
=
(
'key'
,
'name'
,
'description'
,
'homepage_url'
,
'tags'
,)
fields
=
(
'key'
,
'name'
,
'description'
,
'homepage_url'
,
'tags'
,
'logo_image_url'
)
class
CatalogSerializer
(
serializers
.
ModelSerializer
):
...
...
course_discovery/apps/api/tests/test_serializers.py
View file @
6e9fc9ce
...
...
@@ -14,7 +14,7 @@ from course_discovery.apps.api.serializers import (
PersonSerializer
,
AffiliateWindowSerializer
,
ContainedCourseRunsSerializer
,
CourseRunSearchSerializer
,
ProgramSerializer
,
ProgramSearchSerializer
,
ProgramCourseSerializer
,
NestedProgramSerializer
,
CourseRunWithProgramsSerializer
,
CourseWithProgramsSerializer
,
CorporateEndorsementSerializer
,
FAQSerializer
,
EndorsementSerializer
FAQSerializer
,
EndorsementSerializer
,
PositionSerializer
)
from
course_discovery.apps.catalogs.tests.factories
import
CatalogFactory
from
course_discovery.apps.core.models
import
User
...
...
@@ -24,7 +24,7 @@ from course_discovery.apps.course_metadata.models import CourseRun, Program
from
course_discovery.apps.course_metadata.tests.factories
import
(
CourseFactory
,
CourseRunFactory
,
SubjectFactory
,
PrerequisiteFactory
,
ImageFactory
,
VideoFactory
,
OrganizationFactory
,
PersonFactory
,
SeatFactory
,
ProgramFactory
,
CorporateEndorsementFactory
,
EndorsementFactory
,
JobOutlookItemFactory
,
ExpectedLearningItemFactory
JobOutlookItemFactory
,
ExpectedLearningItemFactory
,
PositionFactory
)
...
...
@@ -386,7 +386,6 @@ class ContainedCoursesSerializerTests(TestCase):
@ddt.ddt
class
NamedModelSerializerTests
(
TestCase
):
@ddt.data
(
(
SubjectFactory
,
SubjectSerializer
),
(
PrerequisiteFactory
,
PrerequisiteSerializer
),
)
@ddt.unpack
...
...
@@ -401,6 +400,23 @@ class NamedModelSerializerTests(TestCase):
self
.
assertDictEqual
(
serializer
.
data
,
expected
)
class
SubjectSerializerTests
(
TestCase
):
def
test_data
(
self
):
subject
=
SubjectFactory
()
serializer
=
SubjectSerializer
(
subject
)
expected
=
{
'name'
:
subject
.
name
,
'description'
:
subject
.
description
,
'banner_image_url'
:
subject
.
banner_image_url
,
'card_image_url'
:
subject
.
card_image_url
,
'subtitle'
:
subject
.
subtitle
,
'slug'
:
subject
.
slug
,
}
self
.
assertDictEqual
(
serializer
.
data
,
expected
)
class
ImageSerializerTests
(
TestCase
):
def
test_data
(
self
):
image
=
ImageFactory
()
...
...
@@ -477,6 +493,7 @@ class OrganizationSerializerTests(TestCase):
'name'
:
organization
.
name
,
'description'
:
organization
.
description
,
'homepage_url'
:
organization
.
homepage_url
,
'logo_image_url'
:
organization
.
logo_image_url
,
'tags'
:
[
TAG
],
}
...
...
@@ -503,7 +520,8 @@ class SeatSerializerTests(TestCase):
class
PersonSerializerTests
(
TestCase
):
def
test_data
(
self
):
person
=
PersonFactory
()
position
=
PositionFactory
()
person
=
position
.
person
serializer
=
PersonSerializer
(
person
)
expected
=
{
...
...
@@ -512,12 +530,26 @@ class PersonSerializerTests(TestCase):
'family_name'
:
person
.
family_name
,
'bio'
:
person
.
bio
,
'profile_image_url'
:
person
.
profile_image_url
,
'position'
:
PositionSerializer
(
position
)
.
data
,
'slug'
:
person
.
slug
,
}
self
.
assertDictEqual
(
serializer
.
data
,
expected
)
class
PositionSerializerTests
(
TestCase
):
def
test_data
(
self
):
position
=
PositionFactory
()
serializer
=
PositionSerializer
(
position
)
expected
=
{
'title'
:
str
(
position
.
title
),
'organization_name'
:
position
.
organization_name
,
}
self
.
assertDictEqual
(
serializer
.
data
,
expected
)
class
AffiliateWindowSerializerTests
(
TestCase
):
def
test_data
(
self
):
user
=
UserFactory
()
...
...
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