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
25474f38
Commit
25474f38
authored
Sep 09, 2016
by
Simon Chen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ECOM-5392 only publish to drupal for MicroMasters Program
parent
431fcfa9
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
8 deletions
+32
-8
course_discovery/apps/course_metadata/publishers.py
+4
-0
course_discovery/apps/course_metadata/tests/test_models.py
+17
-5
course_discovery/apps/course_metadata/tests/test_publishers.py
+9
-2
course_discovery/apps/course_metadata/tests/test_signals.py
+2
-1
No files found.
course_discovery/apps/course_metadata/publishers.py
View file @
25474f38
...
...
@@ -98,6 +98,10 @@ class MarketingSitePublisher(object):
partner
=
program
.
partner
.
short_code
)
raise
ProgramPublisherException
(
msg
)
if
program
.
type
.
name
!=
'MicroMasters'
:
# Currently, we should not publish any programs that are not MicroMasters types to Marketing Site
return
if
self
.
data_before
and
\
all
(
self
.
data_before
[
key
]
==
getattr
(
program
,
key
)
for
key
in
[
'title'
,
'status'
,
'type'
]):
# We don't need to publish to marketing site because
...
...
course_discovery/apps/course_metadata/tests/test_models.py
View file @
25474f38
...
...
@@ -17,7 +17,7 @@ from course_discovery.apps.core.utils import SearchQuerySetWrapper
from
course_discovery.apps.course_metadata.models
import
(
AbstractMediaModel
,
AbstractNamedModel
,
AbstractValueModel
,
CorporateEndorsement
,
Program
,
Course
,
CourseRun
,
Endorsement
,
FAQ
,
SeatType
FAQ
,
SeatType
,
ProgramType
,
)
from
course_discovery.apps.course_metadata.tests
import
factories
,
toggle_switch
from
course_discovery.apps.course_metadata.tests.factories
import
CourseRunFactory
,
ImageFactory
...
...
@@ -407,7 +407,7 @@ class ProgramTests(MarketingSitePublisherTestMixin):
self
.
program
.
partner
.
marketing_site_url_root
=
self
.
api_root
self
.
program
.
partner
.
marketing_site_api_username
=
self
.
username
self
.
program
.
partner
.
marketing_site_api_password
=
self
.
password
self
.
program
.
save
(
)
self
.
program
.
type
=
ProgramType
.
objects
.
get
(
name
=
'MicroMasters'
)
self
.
mock_api_client
(
200
)
self
.
mock_node_retrieval
(
self
.
program
.
uuid
)
self
.
mock_node_edit
(
200
)
...
...
@@ -417,9 +417,22 @@ class ProgramTests(MarketingSitePublisherTestMixin):
self
.
assert_responses_call_count
(
6
)
@responses.activate
def
test_xseries_program_save
(
self
):
"""
Make sure if the Program instance is of type XSeries, we do not publish to Marketing Site
"""
self
.
program
.
partner
.
marketing_site_url_root
=
self
.
api_root
self
.
program
.
partner
.
marketing_site_api_username
=
self
.
username
self
.
program
.
partner
.
marketing_site_api_password
=
self
.
password
self
.
program
.
type
=
ProgramType
.
objects
.
get
(
name
=
'XSeries'
)
toggle_switch
(
'publish_program_to_marketing_site'
,
True
)
self
.
program
.
title
=
FuzzyText
()
.
fuzz
()
self
.
program
.
save
()
self
.
assert_responses_call_count
(
0
)
@responses.activate
def
test_save_and_no_marketing_site
(
self
):
self
.
program
.
partner
.
marketing_site_url_root
=
None
self
.
program
.
save
()
toggle_switch
(
'publish_program_to_marketing_site'
,
True
)
self
.
program
.
title
=
FuzzyText
()
.
fuzz
()
self
.
program
.
save
()
...
...
@@ -430,7 +443,7 @@ class ProgramTests(MarketingSitePublisherTestMixin):
self
.
program
.
partner
.
marketing_site_url_root
=
self
.
api_root
self
.
program
.
partner
.
marketing_site_api_username
=
self
.
username
self
.
program
.
partner
.
marketing_site_api_password
=
self
.
password
self
.
program
.
save
(
)
self
.
program
.
type
=
ProgramType
.
objects
.
get
(
name
=
'MicroMasters'
)
self
.
mock_api_client
(
200
)
self
.
mock_node_retrieval
(
self
.
program
.
uuid
)
self
.
mock_node_delete
(
204
)
...
...
@@ -441,7 +454,6 @@ class ProgramTests(MarketingSitePublisherTestMixin):
@responses.activate
def
test_delete_and_no_marketing_site
(
self
):
self
.
program
.
partner
.
marketing_site_url_root
=
None
self
.
program
.
save
()
toggle_switch
(
'publish_program_to_marketing_site'
,
True
)
self
.
program
.
delete
()
self
.
assert_responses_call_count
(
0
)
...
...
course_discovery/apps/course_metadata/tests/test_publishers.py
View file @
25474f38
...
...
@@ -10,7 +10,7 @@ from course_discovery.apps.course_metadata.tests.mixins import (
MarketingSiteAPIClientTestMixin
,
MarketingSitePublisherTestMixin
,
)
from
course_discovery.apps.course_metadata.models
import
Program
from
course_discovery.apps.course_metadata.models
import
Program
,
ProgramType
class
MarketingSiteAPIClientTests
(
MarketingSiteAPIClientTestMixin
):
...
...
@@ -96,6 +96,7 @@ class MarketingSitePublisherTests(MarketingSitePublisherTestMixin):
self
.
program
.
partner
.
marketing_site_url_root
=
self
.
api_root
self
.
program
.
partner
.
marketing_site_api_username
=
self
.
username
self
.
program
.
partner
.
marketing_site_api_password
=
self
.
password
self
.
program
.
type
=
ProgramType
.
objects
.
get
(
name
=
'MicroMasters'
)
self
.
program
.
save
()
# pylint: disable=no-member
self
.
api_client
=
MarketingSiteAPIClient
(
self
.
username
,
...
...
@@ -217,10 +218,16 @@ class MarketingSitePublisherTests(MarketingSitePublisherTestMixin):
self
.
assert_responses_call_count
(
0
)
@responses.activate
def
test_publish_xseries_program
(
self
):
self
.
program
.
type
=
ProgramType
.
objects
.
get
(
name
=
'XSeries'
)
publisher
=
MarketingSitePublisher
()
publisher
.
publish_program
(
self
.
program
)
self
.
assert_responses_call_count
(
0
)
@responses.activate
def
test_publish_program_no_credential
(
self
):
self
.
program
.
partner
.
marketing_site_api_password
=
None
self
.
program
.
partner
.
marketing_site_api_username
=
None
self
.
program
.
save
()
# pylint: disable=no-member
publisher
=
MarketingSitePublisher
()
with
self
.
assertRaises
(
ProgramPublisherException
):
publisher
.
publish_program
(
self
.
program
)
...
...
course_discovery/apps/course_metadata/tests/test_signals.py
View file @
25474f38
...
...
@@ -3,6 +3,7 @@ from unittest.mock import patch
from
django.test
import
TestCase
from
course_discovery.apps.course_metadata.models
import
ProgramType
from
course_discovery.apps.course_metadata.tests
import
factories
,
toggle_switch
...
...
@@ -13,7 +14,7 @@ MARKETING_SITE_PUBLISHERS_MODULE = 'course_discovery.apps.course_metadata.publis
class
SignalsTest
(
TestCase
):
def
setUp
(
self
):
super
(
SignalsTest
,
self
)
.
setUp
()
self
.
program
=
factories
.
ProgramFactory
()
self
.
program
=
factories
.
ProgramFactory
(
type
=
ProgramType
.
objects
.
get
(
name
=
'MicroMasters'
)
)
def
test_delete_program_signal_no_publish
(
self
,
delete_program_mock
):
toggle_switch
(
'publish_program_to_marketing_site'
,
False
)
...
...
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