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
2b61f239
Commit
2b61f239
authored
Feb 10, 2017
by
Clinton Blackburn
Committed by
Clinton Blackburn
Feb 12, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Re-ordered imports using isort
parent
92915527
Hide whitespace changes
Inline
Side-by-side
Showing
156 changed files
with
307 additions
and
354 deletions
+307
-354
.isort.cfg
+2
-0
acceptance_tests/affiliate_cookie_tests.py
+2
-2
acceptance_tests/test_api_gateway.py
+2
-2
course_discovery/apps/api/fields.py
+1
-1
course_discovery/apps/api/filters.py
+4
-3
course_discovery/apps/api/pagination.py
+2
-4
course_discovery/apps/api/serializers.py
+6
-7
course_discovery/apps/api/tests/jwt_utils.py
+1
-1
course_discovery/apps/api/tests/test_serializers.py
+12
-12
course_discovery/apps/api/tests/test_utils.py
+1
-2
course_discovery/apps/api/tests/test_views.py
+1
-1
course_discovery/apps/api/urls.py
+1
-1
course_discovery/apps/api/utils.py
+0
-1
course_discovery/apps/api/v1/tests/test_views/mixins.py
+3
-3
course_discovery/apps/api/v1/tests/test_views/test_affiliate_window.py
+1
-1
course_discovery/apps/api/v1/tests/test_views/test_catalogs.py
+2
-2
course_discovery/apps/api/v1/tests/test_views/test_course_runs.py
+1
-1
course_discovery/apps/api/v1/tests/test_views/test_courses.py
+3
-3
course_discovery/apps/api/v1/tests/test_views/test_organizations.py
+2
-2
course_discovery/apps/api/v1/tests/test_views/test_programs.py
+2
-3
course_discovery/apps/api/v1/tests/test_views/test_search.py
+7
-10
course_discovery/apps/api/v1/urls.py
+1
-1
course_discovery/apps/api/v1/views/catalogs.py
+1
-1
course_discovery/apps/api/v1/views/course_runs.py
+3
-3
course_discovery/apps/api/v1/views/courses.py
+1
-1
course_discovery/apps/api/v1/views/people.py
+1
-1
course_discovery/apps/catalogs/migrations/0001_initial.py
+1
-1
course_discovery/apps/catalogs/migrations/0001_squashed_0002_auto_20160327_2101.py
+1
-1
course_discovery/apps/core/admin.py
+1
-1
course_discovery/apps/core/lookups.py
+1
-0
course_discovery/apps/core/management/commands/tests/test_create_or_update_partner.py
+2
-2
course_discovery/apps/core/migrations/0001_initial.py
+3
-3
course_discovery/apps/core/migrations/0001_squashed_0011_auto_20161101_2207.py
+2
-2
course_discovery/apps/core/migrations/0002_userthrottlerate.py
+1
-1
course_discovery/apps/core/migrations/0008_partner.py
+1
-1
course_discovery/apps/core/tests/factories.py
+1
-1
course_discovery/apps/core/tests/helpers.py
+1
-1
course_discovery/apps/core/tests/test_context_processors.py
+1
-1
course_discovery/apps/core/tests/test_lookups.py
+1
-1
course_discovery/apps/core/tests/test_models.py
+1
-1
course_discovery/apps/core/tests/test_throttles.py
+1
-1
course_discovery/apps/core/tests/test_utils.py
+1
-1
course_discovery/apps/core/tests/test_views.py
+2
-3
course_discovery/apps/core/tests/utils.py
+2
-4
course_discovery/apps/core/views.py
+3
-4
course_discovery/apps/course_metadata/admin.py
+1
-1
course_discovery/apps/course_metadata/choices.py
+1
-1
course_discovery/apps/course_metadata/data_loaders/api.py
+5
-5
course_discovery/apps/course_metadata/data_loaders/marketing_site.py
+3
-3
course_discovery/apps/course_metadata/data_loaders/tests/test_api.py
+5
-7
course_discovery/apps/course_metadata/data_loaders/tests/test_marketing_site.py
+7
-7
course_discovery/apps/course_metadata/forms.py
+1
-1
course_discovery/apps/course_metadata/lookups.py
+2
-2
course_discovery/apps/course_metadata/management/commands/create_test_program.py
+2
-2
course_discovery/apps/course_metadata/management/commands/refresh_course_metadata.py
+5
-6
course_discovery/apps/course_metadata/management/commands/tests/test_refresh_course_metadata.py
+4
-4
course_discovery/apps/course_metadata/migrations/0001_initial.py
+2
-2
course_discovery/apps/course_metadata/migrations/0001_squashed_0033_courserun_mobile_available.py
+6
-5
course_discovery/apps/course_metadata/migrations/0004_program.py
+3
-2
course_discovery/apps/course_metadata/migrations/0005_auto_20160713_0113.py
+2
-1
course_discovery/apps/course_metadata/migrations/0007_auto_20160720_1749.py
+2
-2
course_discovery/apps/course_metadata/migrations/0009_auto_20160725_1751.py
+1
-1
course_discovery/apps/course_metadata/migrations/0011_auto_20160805_1949.py
+2
-2
course_discovery/apps/course_metadata/migrations/0017_auto_20160815_2135.py
+1
-1
course_discovery/apps/course_metadata/migrations/0018_auto_20160815_2252.py
+3
-2
course_discovery/apps/course_metadata/migrations/0019_program_banner_image.py
+1
-1
course_discovery/apps/course_metadata/migrations/0020_auto_20160819_1942.py
+2
-1
course_discovery/apps/course_metadata/migrations/0024_auto_20160901_1426.py
+1
-1
course_discovery/apps/course_metadata/migrations/0029_auto_20160923_1306.py
+0
-1
course_discovery/apps/course_metadata/migrations/0039_programtype_logo_image.py
+1
-1
course_discovery/apps/course_metadata/migrations/0040_auto_20161220_1644.py
+1
-1
course_discovery/apps/course_metadata/migrations/0044_auto_20170131_1749.py
+1
-1
course_discovery/apps/course_metadata/migrations/0045_person_profile_image.py
+1
-1
course_discovery/apps/course_metadata/migrations/0047_personwork.py
+1
-1
course_discovery/apps/course_metadata/models.py
+2
-5
course_discovery/apps/course_metadata/query.py
+1
-2
course_discovery/apps/course_metadata/signals.py
+1
-1
course_discovery/apps/course_metadata/tests/factories.py
+1
-4
course_discovery/apps/course_metadata/tests/mixins.py
+2
-2
course_discovery/apps/course_metadata/tests/test_admin.py
+2
-2
course_discovery/apps/course_metadata/tests/test_lookups.py
+2
-3
course_discovery/apps/course_metadata/tests/test_models.py
+3
-3
course_discovery/apps/course_metadata/tests/test_publishers.py
+2
-5
course_discovery/apps/course_metadata/tests/test_query.py
+1
-2
course_discovery/apps/course_metadata/tests/test_signals.py
+0
-1
course_discovery/apps/course_metadata/tests/test_utils.py
+2
-2
course_discovery/apps/course_metadata/urls.py
+3
-3
course_discovery/apps/course_metadata/utils.py
+1
-1
course_discovery/apps/course_metadata/views.py
+1
-1
course_discovery/apps/edx_catalog_extensions/migrations/0001_squashed_0003_create_publish_to_marketing_site_flag.py
+0
-1
course_discovery/apps/edx_haystack_extensions/admin.py
+1
-1
course_discovery/apps/edx_haystack_extensions/management/commands/update_index.py
+0
-1
course_discovery/apps/edx_haystack_extensions/migrations/0001_initial.py
+1
-1
course_discovery/apps/edx_haystack_extensions/migrations/0001_squashed_0002_auto_20160826_1750.py
+1
-1
course_discovery/apps/edx_haystack_extensions/migrations/0002_auto_20160826_1750.py
+1
-1
course_discovery/apps/edx_haystack_extensions/migrations/0002_auto_20170118_1826.py
+1
-0
course_discovery/apps/edx_haystack_extensions/migrations/0003_auto_20170124_1834.py
+1
-0
course_discovery/apps/edx_haystack_extensions/migrations/0004_auto_20170126_1510.py
+1
-0
course_discovery/apps/edx_haystack_extensions/tests/test_backends.py
+1
-1
course_discovery/apps/ietf_language_tags/lookups.py
+1
-1
course_discovery/apps/ietf_language_tags/migrations/0001_squashed_0005_fix_language_tag_names_again.py
+0
-2
course_discovery/apps/ietf_language_tags/tests/test_lookups.py
+1
-1
course_discovery/apps/publisher/admin.py
+1
-2
course_discovery/apps/publisher/api/permissions.py
+1
-1
course_discovery/apps/publisher/api/serializers.py
+1
-2
course_discovery/apps/publisher/api/tests/test_serializers.py
+4
-4
course_discovery/apps/publisher/api/tests/test_views.py
+5
-6
course_discovery/apps/publisher/api/urls.py
+2
-2
course_discovery/apps/publisher/api/views.py
+4
-4
course_discovery/apps/publisher/choices.py
+1
-1
course_discovery/apps/publisher/emails.py
+1
-1
course_discovery/apps/publisher/forms.py
+3
-3
course_discovery/apps/publisher/migrations/0001_initial.py
+3
-4
course_discovery/apps/publisher/migrations/0002_auto_20160729_1027.py
+1
-1
course_discovery/apps/publisher/migrations/0003_auto_20160801_1757.py
+1
-1
course_discovery/apps/publisher/migrations/0004_auto_20160810_0854.py
+3
-4
course_discovery/apps/publisher/migrations/0005_auto_20160901_0003.py
+1
-1
course_discovery/apps/publisher/migrations/0007_auto_20160905_1020.py
+1
-1
course_discovery/apps/publisher/migrations/0009_auto_20160929_1927.py
+3
-2
course_discovery/apps/publisher/migrations/0011_userattributes.py
+1
-1
course_discovery/apps/publisher/migrations/0012_auto_20161020_0718.py
+1
-1
course_discovery/apps/publisher/migrations/0016_auto_20161129_0910.py
+2
-2
course_discovery/apps/publisher/migrations/0017_auto_20161201_1501.py
+2
-2
course_discovery/apps/publisher/migrations/0020_auto_20161214_1304.py
+2
-2
course_discovery/apps/publisher/migrations/0025_auto_20170106_1830.py
+3
-2
course_discovery/apps/publisher/migrations/0031_courserunstate_coursestate_historicalcourserunstate_historicalcoursestate.py
+2
-2
course_discovery/apps/publisher/mixins.py
+1
-3
course_discovery/apps/publisher/models.py
+4
-4
course_discovery/apps/publisher/tests/factories.py
+5
-5
course_discovery/apps/publisher/tests/test_context_processors.py
+1
-1
course_discovery/apps/publisher/tests/test_emails.py
+5
-4
course_discovery/apps/publisher/tests/test_model.py
+3
-5
course_discovery/apps/publisher/tests/test_utils.py
+6
-10
course_discovery/apps/publisher/tests/test_views.py
+9
-12
course_discovery/apps/publisher/tests/test_wrapper.py
+1
-1
course_discovery/apps/publisher/tests/utils.py
+1
-1
course_discovery/apps/publisher/urls.py
+1
-1
course_discovery/apps/publisher/views.py
+10
-15
course_discovery/apps/publisher_comments/api/serializers.py
+1
-0
course_discovery/apps/publisher_comments/api/tests/test_views.py
+1
-1
course_discovery/apps/publisher_comments/emails.py
+0
-1
course_discovery/apps/publisher_comments/forms.py
+1
-1
course_discovery/apps/publisher_comments/migrations/0001_initial.py
+2
-2
course_discovery/apps/publisher_comments/models.py
+1
-1
course_discovery/apps/publisher_comments/tests/factories.py
+2
-4
course_discovery/apps/publisher_comments/tests/test_admin.py
+2
-2
course_discovery/apps/publisher_comments/tests/test_views.py
+1
-1
course_discovery/apps/publisher_comments/urls.py
+1
-1
course_discovery/settings/base.py
+1
-3
course_discovery/settings/devstack_test.py
+1
-2
course_discovery/settings/docs_settings.py
+0
-1
course_discovery/settings/process_synonyms.py
+4
-1
course_discovery/settings/shared/test.py
+0
-1
course_discovery/settings/test.py
+0
-4
course_discovery/wsgi.py
+1
-1
requirements/test.txt
+1
-0
No files found.
.isort.cfg
0 → 100644
View file @
2b61f239
[settings]
line_length=120
acceptance_tests/affiliate_cookie_tests.py
View file @
2b61f239
...
...
@@ -5,8 +5,8 @@ from django.test import TestCase
from
selenium
import
webdriver
from
acceptance_tests.config
import
(
AFFILIATE_COOKIE_NAME
,
BASIC_AUTH_
USERNAME
,
BASIC_AUTH_PASSWORD
,
COOKIE_DOMAIN
,
ECOMMERCE
_URL_ROOT
,
LMS_URL_ROOT
,
MARKETING_SITE_URL_ROOT
AFFILIATE_COOKIE_NAME
,
BASIC_AUTH_
PASSWORD
,
BASIC_AUTH_USERNAME
,
COOKIE_DOMAIN
,
ECOMMERCE_URL_ROOT
,
LMS
_URL_ROOT
,
MARKETING_SITE_URL_ROOT
)
...
...
acceptance_tests/test_api_gateway.py
View file @
2b61f239
""" Tests to validate configuration of the API gateway. """
import
ddt
from
django.test
import
TestCase
import
requests
from
django.test
import
TestCase
from
acceptance_tests.config
import
API_
GATEWAY_CATALOG_ROOT
,
API_ACCESS_TOKEN
,
CATALOG_ID
from
acceptance_tests.config
import
API_
ACCESS_TOKEN
,
API_GATEWAY_CATALOG_ROOT
,
CATALOG_ID
@ddt.ddt
...
...
course_discovery/apps/api/fields.py
View file @
2b61f239
import
base64
from
rest_framework
import
serializers
from
django.core.files.base
import
ContentFile
from
rest_framework
import
serializers
class
StdImageSerializerField
(
serializers
.
ImageField
):
...
...
course_discovery/apps/api/filters.py
View file @
2b61f239
...
...
@@ -5,15 +5,16 @@ from django.conf import settings
from
django.contrib.auth
import
get_user_model
from
django.db.models
import
QuerySet
from
django.utils.translation
import
ugettext
as
_
from
drf_haystack.filters
import
HaystackFacetFilter
,
HaystackFilter
as
DefaultHaystackFilter
from
drf_haystack.filters
import
HaystackFilter
as
DefaultHaystackFilter
from
drf_haystack.filters
import
HaystackFacetFilter
from
drf_haystack.query
import
FacetQueryBuilder
from
dry_rest_permissions.generics
import
DRYPermissionFiltersBase
from
guardian.shortcuts
import
get_objects_for_user
from
rest_framework.exceptions
import
PermissionDenied
,
NotFoun
d
from
rest_framework.exceptions
import
NotFound
,
PermissionDenie
d
from
course_discovery.apps.api.utils
import
cast2int
from
course_discovery.apps.core.models
import
Partner
from
course_discovery.apps.course_metadata.models
import
Course
,
CourseRun
,
Program
,
Organization
from
course_discovery.apps.course_metadata.models
import
Course
,
CourseRun
,
Organization
,
Program
logger
=
logging
.
getLogger
(
__name__
)
User
=
get_user_model
()
...
...
course_discovery/apps/api/pagination.py
View file @
2b61f239
from
rest_framework.pagination
import
(
PageNumberPagination
as
BasePageNumberPagination
,
LimitOffsetPagination
,
)
from
rest_framework.pagination
import
PageNumberPagination
as
BasePageNumberPagination
from
rest_framework.pagination
import
LimitOffsetPagination
class
PageNumberPagination
(
BasePageNumberPagination
):
...
...
course_discovery/apps/api/serializers.py
View file @
2b61f239
...
...
@@ -8,18 +8,17 @@ from django.conf import settings
from
django.contrib.auth
import
get_user_model
from
django.db.models.query
import
Prefetch
from
django.utils.translation
import
ugettext_lazy
as
_
from
drf_haystack.serializers
import
Haystack
Serializer
,
HaystackFacet
Serializer
from
drf_haystack.serializers
import
Haystack
FacetSerializer
,
Haystack
Serializer
from
rest_framework
import
serializers
from
rest_framework.fields
import
DictField
from
taggit_serializer.serializers
import
Tag
ListSerializerField
,
TaggitSerializer
from
taggit_serializer.serializers
import
Tag
gitSerializer
,
TagListSerializerField
from
course_discovery.apps.api.fields
import
StdImageSerializerField
,
Image
Field
from
course_discovery.apps.api.fields
import
ImageField
,
StdImageSerializer
Field
from
course_discovery.apps.catalogs.models
import
Catalog
from
course_discovery.apps.course_metadata.choices
import
CourseRunStatus
,
ProgramStatus
from
course_discovery.apps.course_metadata.models
import
(
Course
,
CourseRun
,
Image
,
Organization
,
Person
,
Prerequisite
,
Seat
,
Subject
,
Video
,
Program
,
ProgramType
,
FAQ
,
CorporateEndorsement
,
Endorsement
,
Position
,
PersonWork
)
from
course_discovery.apps.course_metadata.models
import
(
FAQ
,
CorporateEndorsement
,
Course
,
CourseRun
,
Endorsement
,
Image
,
Organization
,
Person
,
PersonWork
,
Position
,
Prerequisite
,
Program
,
ProgramType
,
Seat
,
Subject
,
Video
)
from
course_discovery.apps.course_metadata.search_indexes
import
CourseIndex
,
CourseRunIndex
,
ProgramIndex
User
=
get_user_model
()
...
...
course_discovery/apps/api/tests/jwt_utils.py
View file @
2b61f239
""" Utilities for working with JWT during testing."""
from
time
import
time
from
django.conf
import
settings
import
jwt
from
django.conf
import
settings
def
generate_jwt_payload
(
user
):
...
...
course_discovery/apps/api/tests/test_serializers.py
View file @
2b61f239
...
...
@@ -3,22 +3,22 @@ import datetime
from
urllib.parse
import
urlencode
import
ddt
import
pytz
from
django.test
import
TestCase
from
haystack.query
import
SearchQuerySet
from
opaque_keys.edx.keys
import
CourseKey
import
pytz
from
rest_framework.test
import
APIRequestFactory
from
course_discovery.apps.api.fields
import
ImageField
,
StdImageSerializerField
from
course_discovery.apps.api.serializers
import
(
CatalogSerializer
,
CourseRunSerializer
,
ContainedCoursesSerializer
,
Image
Serializer
,
SubjectSerializer
,
PrerequisiteSerializer
,
VideoSerializer
,
OrganizationSerializer
,
Seat
Serializer
,
PersonSerializer
,
AffiliateWindowSerializer
,
ContainedCourseRunsSerializer
,
CourseRunSearch
Serializer
,
ProgramSerializer
,
ProgramSearchSerializer
,
MinimalProgramCourseSerializer
,
NestedProgram
Serializer
,
CourseRunWithProgramsSerializer
,
CourseWithProgramsSerializer
,
CorporateEndorsement
Serializer
,
FAQSerializer
,
EndorsementSerializer
,
PositionSerializer
,
FlattenedCourseRunWithCourse
Serializer
,
MinimalCourseSerializer
,
MinimalOrganizationSerializer
,
MinimalCourseRunSerializer
,
MinimalProgram
Serializer
,
CourseSerializer
,
TypeaheadCourseRunSearchSerializer
,
TypeaheadProgramSearchSerializer
,
ProgramType
Serializer
AffiliateWindowSerializer
,
CatalogSerializer
,
ContainedCourseRunsSerializer
,
ContainedCourses
Serializer
,
CorporateEndorsementSerializer
,
CourseRunSearchSerializer
,
CourseRunSerializer
,
CourseRunWithPrograms
Serializer
,
CourseSerializer
,
CourseWithProgramsSerializer
,
EndorsementSerializer
,
FAQ
Serializer
,
FlattenedCourseRunWithCourseSerializer
,
ImageSerializer
,
MinimalCourseRunSerializer
,
MinimalCourse
Serializer
,
MinimalOrganizationSerializer
,
MinimalProgramCourseSerializer
,
MinimalProgramSerializer
,
NestedProgram
Serializer
,
OrganizationSerializer
,
PersonSerializer
,
PositionSerializer
,
PrerequisiteSerializer
,
ProgramSearch
Serializer
,
ProgramSerializer
,
ProgramTypeSerializer
,
SeatSerializer
,
SubjectSerializer
,
TypeaheadCourseRunSearch
Serializer
,
TypeaheadProgramSearchSerializer
,
Video
Serializer
)
from
course_discovery.apps.catalogs.tests.factories
import
CatalogFactory
from
course_discovery.apps.core.models
import
User
...
...
@@ -28,9 +28,9 @@ from course_discovery.apps.core.tests.mixins import ElasticsearchTestMixin
from
course_discovery.apps.course_metadata.choices
import
CourseRunStatus
,
ProgramStatus
from
course_discovery.apps.course_metadata.models
import
CourseRun
,
Program
from
course_discovery.apps.course_metadata.tests.factories
import
(
Co
urseFactory
,
CourseRunFactory
,
SubjectFactory
,
PrerequisiteFactory
,
ImageFactory
,
Video
Factory
,
OrganizationFactory
,
PersonFactory
,
SeatFactory
,
ProgramFactory
,
CorporateEndorsementFactory
,
Endorsement
Factory
,
JobOutlookItemFactory
,
ExpectedLearningItemFactory
,
PositionFactory
,
ProgramType
Factory
Co
rporateEndorsementFactory
,
CourseFactory
,
CourseRunFactory
,
EndorsementFactory
,
ExpectedLearningItem
Factory
,
ImageFactory
,
JobOutlookItemFactory
,
OrganizationFactory
,
PersonFactory
,
PositionFactory
,
Prerequisite
Factory
,
ProgramFactory
,
ProgramTypeFactory
,
SeatFactory
,
SubjectFactory
,
Video
Factory
)
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
...
...
course_discovery/apps/api/tests/test_utils.py
View file @
2b61f239
import
ddt
from
django.test
import
TestCase
import
mock
from
django.test
import
TestCase
from
course_discovery.apps.api.utils
import
cast2int
LOGGER_PATH
=
'course_discovery.apps.api.utils.logger.exception'
...
...
course_discovery/apps/api/tests/test_views.py
View file @
2b61f239
...
...
@@ -2,7 +2,7 @@ import ddt
from
django.contrib.auth.models
import
AnonymousUser
from
django.core.exceptions
import
PermissionDenied
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
,
RequestFactory
from
django.test
import
RequestFactory
,
TestCase
from
course_discovery.apps.api.views
import
api_docs_permission_denied_handler
from
course_discovery.apps.core.tests.factories
import
UserFactory
...
...
course_discovery/apps/api/urls.py
View file @
2b61f239
...
...
@@ -4,7 +4,7 @@ Root API URLs.
All API URLs should be versioned, so urlpatterns should only
contain namespaces for the active versions of the API.
"""
from
django.conf.urls
import
url
,
include
from
django.conf.urls
import
include
,
url
urlpatterns
=
[
url
(
r'^v1/'
,
include
(
'course_discovery.apps.api.v1.urls'
,
namespace
=
'v1'
)),
...
...
course_discovery/apps/api/utils.py
View file @
2b61f239
import
logging
logger
=
logging
.
getLogger
(
__name__
)
...
...
course_discovery/apps/api/v1/tests/test_views/mixins.py
View file @
2b61f239
...
...
@@ -7,9 +7,9 @@ from django.conf import settings
from
rest_framework.test
import
APIRequestFactory
from
course_discovery.apps.api.serializers
import
(
CatalogSerializer
,
CourseWithProgramsSerializer
,
CourseSerializerExcludingClosedRuns
,
Course
RunWithProgramsSerializer
,
MinimalProgramSerializer
,
PersonSerializer
,
ProgramSerializer
,
FlattenedCourseRunWithCourseSerializer
,
Organization
Serializer
,
ProgramTypeSerializer
CatalogSerializer
,
Course
Run
WithProgramsSerializer
,
CourseSerializerExcludingClosedRuns
,
Course
WithProgramsSerializer
,
FlattenedCourseRunWithCourseSerializer
,
Minimal
ProgramSerializer
,
OrganizationSerializer
,
PersonSerializer
,
Program
Serializer
,
ProgramTypeSerializer
)
...
...
course_discovery/apps/api/v1/tests/test_views/test_affiliate_window.py
View file @
2b61f239
# pylint: disable=redefined-builtin,no-member
import
datetime
from
os.path
import
abspath
,
join
,
dirname
import
xml.etree.ElementTree
as
ET
from
os.path
import
abspath
,
dirname
,
join
import
ddt
import
pytz
...
...
course_discovery/apps/api/v1/tests/test_views/test_catalogs.py
View file @
2b61f239
...
...
@@ -3,14 +3,14 @@ import datetime
import
urllib
import
ddt
from
django.contrib.auth
import
get_user_model
import
pytz
import
responses
from
django.contrib.auth
import
get_user_model
from
rest_framework.reverse
import
reverse
from
rest_framework.test
import
APITestCase
from
course_discovery.apps.api.tests.jwt_utils
import
generate_jwt_header_for_user
from
course_discovery.apps.api.v1.tests.test_views.mixins
import
SerializationMixin
,
OAuth2
Mixin
from
course_discovery.apps.api.v1.tests.test_views.mixins
import
OAuth2Mixin
,
Serialization
Mixin
from
course_discovery.apps.catalogs.models
import
Catalog
from
course_discovery.apps.catalogs.tests.factories
import
CatalogFactory
from
course_discovery.apps.core.tests.factories
import
UserFactory
...
...
course_discovery/apps/api/v1/tests/test_views/test_course_runs.py
View file @
2b61f239
...
...
@@ -7,7 +7,7 @@ import pytz
from
django.conf
import
settings
from
django.db.models.functions
import
Lower
from
rest_framework.reverse
import
reverse
from
rest_framework.test
import
API
TestCase
,
APIRequestFactory
from
rest_framework.test
import
API
RequestFactory
,
APITestCase
from
course_discovery.apps.api.v1.tests.test_views.mixins
import
SerializationMixin
from
course_discovery.apps.core.tests.factories
import
UserFactory
...
...
course_discovery/apps/api/v1/tests/test_views/test_courses.py
View file @
2b61f239
import
datetime
import
ddt
from
django.db.models.functions
import
Lower
import
pytz
from
django.db.models.functions
import
Lower
from
rest_framework.reverse
import
reverse
from
rest_framework.test
import
APITestCase
from
course_discovery.apps.api.v1.tests.test_views.mixins
import
SerializationMixin
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.course_metadata.choices
import
ProgramStatus
,
CourseRun
Status
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.course_metadata.choices
import
CourseRunStatus
,
Program
Status
from
course_discovery.apps.course_metadata.models
import
Course
from
course_discovery.apps.course_metadata.tests.factories
import
(
CourseFactory
,
CourseRunFactory
,
ProgramFactory
,
SeatFactory
...
...
course_discovery/apps/api/v1/tests/test_views/test_organizations.py
View file @
2b61f239
...
...
@@ -5,8 +5,8 @@ from django.core.urlresolvers import reverse
from
rest_framework.test
import
APITestCase
from
course_discovery.apps.api.v1.tests.test_views.mixins
import
SerializationMixin
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.course_metadata.tests.factories
import
Organization
Factory
,
Organization
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.course_metadata.tests.factories
import
Organization
,
OrganizationFactory
@ddt.ddt
...
...
course_discovery/apps/api/v1/tests/test_views/test_programs.py
View file @
2b61f239
...
...
@@ -10,9 +10,8 @@ from course_discovery.apps.core.tests.helpers import make_image_file
from
course_discovery.apps.course_metadata.choices
import
ProgramStatus
from
course_discovery.apps.course_metadata.models
import
Program
,
ProgramType
from
course_discovery.apps.course_metadata.tests.factories
import
(
CourseFactory
,
CourseRunFactory
,
VideoFactory
,
OrganizationFactory
,
PersonFactory
,
ProgramFactory
,
CorporateEndorsementFactory
,
EndorsementFactory
,
JobOutlookItemFactory
,
ExpectedLearningItemFactory
,
ProgramTypeFactory
CorporateEndorsementFactory
,
CourseFactory
,
CourseRunFactory
,
EndorsementFactory
,
ExpectedLearningItemFactory
,
JobOutlookItemFactory
,
OrganizationFactory
,
PersonFactory
,
ProgramFactory
,
ProgramTypeFactory
,
VideoFactory
)
...
...
course_discovery/apps/api/v1/tests/test_views/test_search.py
View file @
2b61f239
import
datetime
import
json
import
urllib.parse
from
mock
import
patch
import
ddt
import
pytz
from
django.conf
import
settings
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
from
haystack.query
import
SearchQuerySet
import
pytz
from
mock
import
patch
from
rest_framework.test
import
APITestCase
from
course_discovery.apps.api.serializers
import
(
CourseRunSearchSerializer
,
ProgramSearchSerializer
,
TypeaheadCourseRunSearchSerializer
,
TypeaheadProgramSearchSerializer
)
from
course_discovery.apps.api.serializers
import
(
CourseRunSearchSerializer
,
ProgramSearchSerializer
,
TypeaheadCourseRunSearchSerializer
,
TypeaheadProgramSearchSerializer
)
from
course_discovery.apps.api.v1.views.search
import
TypeaheadSearchView
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
,
Partn
erFactory
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
PartnerFactory
,
Us
erFactory
from
course_discovery.apps.core.tests.mixins
import
ElasticsearchTestMixin
from
course_discovery.apps.course_metadata.choices
import
CourseRunStatus
,
ProgramStatus
from
course_discovery.apps.course_metadata.models
import
CourseRun
,
Program
,
ProgramType
from
course_discovery.apps.course_metadata.tests.factories
import
(
CourseFactory
,
CourseRunFactory
,
ProgramFactory
,
OrganizationFactory
)
from
course_discovery.apps.course_metadata.tests.factories
import
(
CourseFactory
,
CourseRunFactory
,
OrganizationFactory
,
ProgramFactory
)
class
SerializationMixin
:
...
...
course_discovery/apps/api/v1/urls.py
View file @
2b61f239
...
...
@@ -9,7 +9,7 @@ from course_discovery.apps.api.v1.views.course_runs import CourseRunViewSet
from
course_discovery.apps.api.v1.views.courses
import
CourseViewSet
from
course_discovery.apps.api.v1.views.organizations
import
OrganizationViewSet
from
course_discovery.apps.api.v1.views.people
import
PersonViewSet
from
course_discovery.apps.api.v1.views.programs
import
Program
ViewSet
,
ProgramTypeList
ViewSet
from
course_discovery.apps.api.v1.views.programs
import
Program
TypeListViewSet
,
Program
ViewSet
partners_router
=
routers
.
SimpleRouter
()
partners_router
.
register
(
r'affiliate_window/catalogs'
,
AffiliateWindowViewSet
,
base_name
=
'affiliate_window'
)
...
...
course_discovery/apps/api/v1/views/catalogs.py
View file @
2b61f239
...
...
@@ -3,7 +3,7 @@ import datetime
from
django.db
import
transaction
from
django.http
import
HttpResponse
from
dry_rest_permissions.generics
import
DRYPermissions
from
rest_framework
import
viewsets
,
statu
s
from
rest_framework
import
status
,
viewset
s
from
rest_framework.decorators
import
detail_route
from
rest_framework.response
import
Response
...
...
course_discovery/apps/api/v1/views/course_runs.py
View file @
2b61f239
from
django.db.models.functions
import
Lower
from
rest_framework
import
viewsets
,
statu
s
from
rest_framework
import
status
,
viewset
s
from
rest_framework.decorators
import
list_route
from
rest_framework.filters
import
DjangoFilterBackend
,
OrderingFilter
from
rest_framework.permissions
import
IsAuthenticated
,
DjangoModelPermissions
from
rest_framework.permissions
import
DjangoModelPermissions
,
IsAuthenticated
from
rest_framework.response
import
Response
from
course_discovery.apps.api
import
filters
,
serializers
from
course_discovery.apps.api.pagination
import
ProxiedPagination
from
course_discovery.apps.api.v1.views
import
get_query_param
,
PartnerMixin
from
course_discovery.apps.api.v1.views
import
PartnerMixin
,
get_query_param
from
course_discovery.apps.core.utils
import
SearchQuerySetWrapper
from
course_discovery.apps.course_metadata.constants
import
COURSE_RUN_ID_REGEX
from
course_discovery.apps.course_metadata.models
import
CourseRun
...
...
course_discovery/apps/api/v1/views/courses.py
View file @
2b61f239
...
...
@@ -5,7 +5,7 @@ from rest_framework.permissions import IsAuthenticated
from
course_discovery.apps.api
import
filters
,
serializers
from
course_discovery.apps.api.pagination
import
ProxiedPagination
from
course_discovery.apps.api.v1.views
import
prefetch_related_objects_for_courses
,
get_query_param
from
course_discovery.apps.api.v1.views
import
get_query_param
,
prefetch_related_objects_for_courses
from
course_discovery.apps.course_metadata.constants
import
COURSE_ID_REGEX
from
course_discovery.apps.course_metadata.models
import
Course
...
...
course_discovery/apps/api/v1/views/people.py
View file @
2b61f239
import
json
from
rest_framework
import
viewsets
,
statu
s
from
rest_framework
import
status
,
viewset
s
from
rest_framework.permissions
import
IsAuthenticated
from
rest_framework.response
import
Response
...
...
course_discovery/apps/catalogs/migrations/0001_initial.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django_extensions.db.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/catalogs/migrations/0001_squashed_0002_auto_20160327_2101.py
View file @
2b61f239
...
...
@@ -2,8 +2,8 @@
# Generated by Django 1.9.10 on 2016-11-03 22:01
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django_extensions.db.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/core/admin.py
View file @
2b61f239
...
...
@@ -5,7 +5,7 @@ from django.contrib.auth.admin import UserAdmin
from
django.utils.translation
import
ugettext_lazy
as
_
from
course_discovery.apps.core.forms
import
UserThrottleRateForm
from
course_discovery.apps.core.models
import
User
,
UserThrottleRate
,
Currency
,
Partner
from
course_discovery.apps.core.models
import
Currency
,
Partner
,
User
,
UserThrottleRate
@admin.register
(
User
)
...
...
course_discovery/apps/core/lookups.py
View file @
2b61f239
from
dal
import
autocomplete
from
course_discovery.apps.core.models
import
User
...
...
course_discovery/apps/core/management/commands/tests/test_create_or_update_partner.py
View file @
2b61f239
from
__future__
import
unicode_literals
from
ddt
import
d
dt
,
data
from
django.core.management
import
call_command
,
CommandError
from
ddt
import
d
ata
,
ddt
from
django.core.management
import
CommandError
,
call_command
from
django.test
import
TestCase
from
course_discovery.apps.core.models
import
Partner
...
...
course_discovery/apps/core/migrations/0001_initial.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django.utils.timezone
import
django.core.validators
import
django.contrib.auth.models
import
django.core.validators
import
django.utils.timezone
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/core/migrations/0001_squashed_0011_auto_20161101_2207.py
View file @
2b61f239
...
...
@@ -2,14 +2,14 @@
# Generated by Django 1.9.10 on 2016-11-03 22:04
from
__future__
import
unicode_literals
from
django.conf
import
settings
import
django.contrib.auth.models
import
django.core.validators
from
django.db
import
migrations
,
models
import
django.db.models.deletion
import
django.utils.timezone
import
django_extensions.db.fields
import
pycountry
from
django.conf
import
settings
from
django.db
import
migrations
,
models
def
add_currencies
(
apps
,
schema_editor
):
...
...
course_discovery/apps/core/migrations/0002_userthrottlerate.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/core/migrations/0008_partner.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django_extensions.db.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/core/tests/factories.py
View file @
2b61f239
import
factory
from
factory.fuzzy
import
FuzzyText
from
course_discovery.apps.core.models
import
User
,
Partn
er
from
course_discovery.apps.core.models
import
Partner
,
Us
er
from
course_discovery.apps.core.tests.utils
import
FuzzyUrlRoot
USER_PASSWORD
=
'password'
...
...
course_discovery/apps/core/tests/helpers.py
View file @
2b61f239
...
...
@@ -2,9 +2,9 @@
Helper methods for testing the processing of image files.
"""
from
io
import
BytesIO
from
PIL
import
Image
from
django.core.files.uploadedfile
import
SimpleUploadedFile
from
PIL
import
Image
def
make_image_stream
(
width
,
height
):
...
...
course_discovery/apps/core/tests/test_context_processors.py
View file @
2b61f239
""" Context processor tests. """
from
django.test
import
TestCase
,
override_settings
,
RequestFactory
from
django.test
import
RequestFactory
,
TestCase
,
override_settings
from
course_discovery.apps.core.context_processors
import
core
...
...
course_discovery/apps/core/tests/test_lookups.py
View file @
2b61f239
...
...
@@ -3,7 +3,7 @@ import json
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
class
UserAutocompleteTests
(
TestCase
):
...
...
course_discovery/apps/core/tests/test_models.py
View file @
2b61f239
...
...
@@ -4,7 +4,7 @@ from django.test import TestCase
from
social.apps.django_app.default.models
import
UserSocialAuth
from
course_discovery.apps.core.models
import
Currency
from
course_discovery.apps.core.tests.factories
import
UserFactory
,
Partn
erFactory
from
course_discovery.apps.core.tests.factories
import
PartnerFactory
,
Us
erFactory
class
UserTests
(
TestCase
):
...
...
course_discovery/apps/core/tests/test_throttles.py
View file @
2b61f239
...
...
@@ -3,7 +3,7 @@ from django.core.urlresolvers import reverse
from
rest_framework.test
import
APITestCase
from
course_discovery.apps.core.models
import
UserThrottleRate
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.core.throttles
import
OverridableUserRateThrottle
...
...
course_discovery/apps/core/tests/test_utils.py
View file @
2b61f239
...
...
@@ -2,7 +2,7 @@ from django.db import models
from
django.test
import
TestCase
from
haystack.query
import
SearchQuerySet
from
course_discovery.apps.core.utils
import
get_all_related_field_names
,
SearchQuerySetWrapper
from
course_discovery.apps.core.utils
import
SearchQuerySetWrapper
,
get_all_related_field_names
from
course_discovery.apps.course_metadata.models
import
CourseRun
from
course_discovery.apps.course_metadata.tests.factories
import
CourseRunFactory
...
...
course_discovery/apps/core/tests/test_views.py
View file @
2b61f239
"""Test core.views."""
from
django.db
import
DatabaseError
import
mock
from
django.conf
import
settings
from
django.contrib.auth
import
get_user_model
from
django.core.urlresolvers
import
reverse
from
django.db
import
DatabaseError
from
django.test
import
TestCase
from
django.test.utils
import
override_settings
from
django.utils.encoding
import
force_text
import
mock
from
course_discovery.apps.core.constants
import
Status
User
=
get_user_model
()
...
...
course_discovery/apps/core/tests/utils.py
View file @
2b61f239
import
json
import
math
from
urllib.parse
import
parse_qs
,
urlparse
from
factory.fuzzy
import
(
BaseFuzzyAttribute
,
FuzzyText
,
FuzzyChoice
)
from
factory.fuzzy
import
BaseFuzzyAttribute
,
FuzzyChoice
,
FuzzyText
from
course_discovery.apps.core.tests.helpers
import
make_image_stream
...
...
course_discovery/apps/core/views.py
View file @
2b61f239
...
...
@@ -3,10 +3,9 @@ import logging
import
uuid
from
django.conf
import
settings
from
django.contrib.auth
import
get_user_model
,
login
,
authenticate
from
django.db
import
transaction
,
connection
,
DatabaseError
from
django.http
import
Http404
from
django.http
import
JsonResponse
from
django.contrib.auth
import
authenticate
,
get_user_model
,
login
from
django.db
import
DatabaseError
,
connection
,
transaction
from
django.http
import
Http404
,
JsonResponse
from
django.shortcuts
import
redirect
from
django.views.generic
import
View
...
...
course_discovery/apps/course_metadata/admin.py
View file @
2b61f239
...
...
@@ -4,7 +4,7 @@ from django.http import HttpResponseRedirect
from
django.utils.safestring
import
mark_safe
from
django.utils.translation
import
ugettext_lazy
as
_
from
course_discovery.apps.course_metadata.forms
import
ProgramAdminForm
,
Course
AdminForm
from
course_discovery.apps.course_metadata.forms
import
CourseAdminForm
,
Program
AdminForm
from
course_discovery.apps.course_metadata.models
import
*
# pylint: disable=wildcard-import
from
course_discovery.apps.course_metadata.publishers
import
ProgramPublisherException
from
course_discovery.apps.course_metadata.utils
import
MarketingSiteAPIClientException
...
...
course_discovery/apps/course_metadata/choices.py
View file @
2b61f239
from
django.utils.translation
import
ugettext_lazy
as
_
from
djchoices
import
DjangoChoices
,
ChoiceItem
from
djchoices
import
ChoiceItem
,
DjangoChoices
class
CourseRunStatus
(
DjangoChoices
):
...
...
course_discovery/apps/course_metadata/data_loaders/api.py
View file @
2b61f239
import
concurrent.futures
from
decimal
import
Decimal
from
io
import
BytesIO
import
logging
import
math
from
decimal
import
Decimal
from
io
import
BytesIO
import
requests
from
django.core.files
import
File
from
opaque_keys.edx.keys
import
CourseKey
import
requests
from
course_discovery.apps.core.models
import
Currency
from
course_discovery.apps.course_metadata.choices
import
CourseRun
Status
,
CourseRunPacing
from
course_discovery.apps.course_metadata.choices
import
CourseRun
Pacing
,
CourseRunStatus
from
course_discovery.apps.course_metadata.data_loaders
import
AbstractDataLoader
from
course_discovery.apps.course_metadata.models
import
(
Video
,
Organization
,
Seat
,
CourseRun
,
Program
,
Course
,
ProgramType
,
Course
,
CourseRun
,
Organization
,
Program
,
ProgramType
,
Seat
,
Video
)
logger
=
logging
.
getLogger
(
__name__
)
...
...
course_discovery/apps/course_metadata/data_loaders/marketing_site.py
View file @
2b61f239
...
...
@@ -5,17 +5,17 @@ import logging
from
urllib.parse
import
parse_qs
,
urlencode
,
urlparse
from
uuid
import
UUID
from
dateutil
import
rrule
import
pytz
from
dateutil
import
rrule
from
django.db.models
import
Q
from
django.utils.functional
import
cached_property
from
opaque_keys
import
InvalidKeyError
from
opaque_keys.edx.keys
import
CourseKey
from
course_discovery.apps.course_metadata.choices
import
CourseRun
Status
,
CourseRunPacing
from
course_discovery.apps.course_metadata.choices
import
CourseRun
Pacing
,
CourseRunStatus
from
course_discovery.apps.course_metadata.data_loaders
import
AbstractDataLoader
from
course_discovery.apps.course_metadata.models
import
(
Course
,
Organization
,
Person
,
Subject
,
Program
,
Position
,
LevelType
,
CourseRun
Course
,
CourseRun
,
LevelType
,
Organization
,
Person
,
Position
,
Program
,
Subject
)
from
course_discovery.apps.course_metadata.utils
import
MarketingSiteAPIClient
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
...
...
course_discovery/apps/course_metadata/data_loaders/tests/test_api.py
View file @
2b61f239
...
...
@@ -8,17 +8,15 @@ from django.test import TestCase
from
pytz
import
UTC
from
course_discovery.apps.core.tests.utils
import
mock_api_callback
,
mock_jpeg_callback
from
course_discovery.apps.course_metadata.choices
import
CourseRun
Status
,
CourseRunPacing
from
course_discovery.apps.course_metadata.choices
import
CourseRun
Pacing
,
CourseRunStatus
from
course_discovery.apps.course_metadata.data_loaders.api
import
(
OrganizationsApiDataLoader
,
CoursesApiDataLoader
,
EcommerceApiDataLoader
,
Abstract
DataLoader
,
ProgramsApiDataLoader
AbstractDataLoader
,
CoursesApiDataLoader
,
EcommerceApiDataLoader
,
OrganizationsApi
DataLoader
,
ProgramsApiDataLoader
)
from
course_discovery.apps.course_metadata.data_loaders.tests
import
J
SON
,
JPEG
,
mock_data
from
course_discovery.apps.course_metadata.data_loaders.tests
import
J
PEG
,
JSON
,
mock_data
from
course_discovery.apps.course_metadata.data_loaders.tests.mixins
import
ApiClientTestMixin
,
DataLoaderTestMixin
from
course_discovery.apps.course_metadata.models
import
(
Course
,
CourseRun
,
Organization
,
Seat
,
Program
,
ProgramType
,
)
from
course_discovery.apps.course_metadata.models
import
Course
,
CourseRun
,
Organization
,
Program
,
ProgramType
,
Seat
from
course_discovery.apps.course_metadata.tests.factories
import
(
Course
RunFactory
,
SeatFactory
,
ImageFactory
,
VideoFactory
,
OrganizationFactory
,
CourseFactory
,
Course
Factory
,
CourseRunFactory
,
ImageFactory
,
OrganizationFactory
,
SeatFactory
,
VideoFactory
)
LOGGER_PATH
=
'course_discovery.apps.course_metadata.data_loaders.api.logger'
...
...
course_discovery/apps/course_metadata/data_loaders/tests/test_marketing_site.py
View file @
2b61f239
...
...
@@ -4,23 +4,23 @@ import math
from
urllib.parse
import
parse_qs
,
urlparse
from
uuid
import
UUID
from
dateutil
import
rrule
import
ddt
from
django.test
import
TestCase
import
mock
from
opaque_keys.edx.keys
import
CourseKey
import
pytz
import
responses
from
dateutil
import
rrule
from
django.test
import
TestCase
from
opaque_keys.edx.keys
import
CourseKey
from
testfixtures
import
LogCapture
from
course_discovery.apps.course_metadata.choices
import
CourseRun
Status
,
CourseRunPacing
from
course_discovery.apps.course_metadata.choices
import
CourseRun
Pacing
,
CourseRunStatus
from
course_discovery.apps.course_metadata.data_loaders.marketing_site
import
(
XSeriesMarketingSiteDataLoader
,
Subject
MarketingSiteDataLoader
,
SchoolMarketingSiteDataLoader
,
SponsorMarketingSiteDataLoader
,
PersonMarketingSiteDataLoader
,
Course
MarketingSiteDataLoader
CourseMarketingSiteDataLoader
,
Person
MarketingSiteDataLoader
,
SchoolMarketingSiteDataLoader
,
SponsorMarketingSiteDataLoader
,
SubjectMarketingSiteDataLoader
,
XSeries
MarketingSiteDataLoader
)
from
course_discovery.apps.course_metadata.data_loaders.tests
import
JSON
,
mock_data
from
course_discovery.apps.course_metadata.data_loaders.tests.mixins
import
DataLoaderTestMixin
from
course_discovery.apps.course_metadata.models
import
Organization
,
Subject
,
Program
,
Video
,
Person
,
Course
from
course_discovery.apps.course_metadata.models
import
Course
,
Organization
,
Person
,
Program
,
Subject
,
Video
from
course_discovery.apps.course_metadata.tests
import
factories
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
...
...
course_discovery/apps/course_metadata/forms.py
View file @
2b61f239
...
...
@@ -5,7 +5,7 @@ from django.forms.utils import ErrorList
from
django.utils.translation
import
ugettext_lazy
as
_
from
course_discovery.apps.course_metadata.choices
import
ProgramStatus
from
course_discovery.apps.course_metadata.models
import
Program
,
CourseRun
,
Course
from
course_discovery.apps.course_metadata.models
import
Course
,
CourseRun
,
Program
def
filter_choices_to_render_with_order_preserved
(
self
,
selected_choices
):
...
...
course_discovery/apps/course_metadata/lookups.py
View file @
2b61f239
from
dal
import
autocomplete
from
django.db.models
import
Q
from
django.template.loader
import
render_to_string
from
dal
import
autocomplete
from
.models
import
Course
,
CourseRun
,
Organization
,
Video
,
Person
from
.models
import
Course
,
CourseRun
,
Organization
,
Person
,
Video
class
CourseAutocomplete
(
autocomplete
.
Select2QuerySetView
):
...
...
course_discovery/apps/course_metadata/management/commands/create_test_program.py
View file @
2b61f239
...
...
@@ -5,8 +5,8 @@ from django.core.management import BaseCommand
from
course_discovery.apps.core.models
import
Partner
from
course_discovery.apps.course_metadata.models
import
Program
from
course_discovery.apps.course_metadata.tests.factories
import
(
OrganizationFactory
,
CorporateEndorsement
Factory
,
EndorsementFactory
,
ExpectedLearningItemFactory
,
FAQFactory
,
JobOutlookItemFactory
,
ProgramFactory
,
CourseFactory
,
CourseRun
Factory
CorporateEndorsementFactory
,
CourseFactory
,
CourseRun
Factory
,
EndorsementFactory
,
ExpectedLearningItemFactory
,
FAQFactory
,
JobOutlookItemFactory
,
OrganizationFactory
,
Program
Factory
)
logger
=
logging
.
getLogger
(
__name__
)
...
...
course_discovery/apps/course_metadata/management/commands/refresh_course_metadata.py
View file @
2b61f239
...
...
@@ -2,23 +2,22 @@ import concurrent.futures
import
itertools
import
logging
import
jwt
import
waffle
from
django.core.management
import
BaseCommand
,
CommandError
from
django.db
import
connection
from
edx_rest_api_client.client
import
EdxRestApiClient
import
jwt
import
waffle
from
course_discovery.apps.core.models
import
Partner
from
course_discovery.apps.course_metadata.data_loaders.api
import
(
OrganizationsApiDataLoader
,
EcommerceApiDataLoader
,
ProgramsApiDataLoader
,
CoursesApiDataLoader
,
CoursesApiDataLoader
,
EcommerceApiDataLoader
,
OrganizationsApiDataLoader
,
ProgramsApiDataLoader
)
from
course_discovery.apps.course_metadata.data_loaders.marketing_site
import
(
XSeriesMarketingSiteDataLoader
,
Subject
MarketingSiteDataLoader
,
SchoolMarketingSiteDataLoader
,
SponsorMarketingSiteDataLoader
,
PersonMarketingSiteDataLoader
,
CourseMarketingSiteDataLoader
,
CourseMarketingSiteDataLoader
,
Person
MarketingSiteDataLoader
,
SchoolMarketingSiteDataLoader
,
SponsorMarketingSiteDataLoader
,
SubjectMarketingSiteDataLoader
,
XSeriesMarketingSiteDataLoader
)
from
course_discovery.apps.course_metadata.models
import
Course
logger
=
logging
.
getLogger
(
__name__
)
...
...
course_discovery/apps/course_metadata/management/commands/tests/test_refresh_course_metadata.py
View file @
2b61f239
...
...
@@ -4,17 +4,17 @@ import ddt
import
jwt
import
mock
import
responses
from
django.core.management
import
call_command
,
CommandError
from
django.core.management
import
CommandError
,
call_command
from
django.test
import
TransactionTestCase
from
course_discovery.apps.core.tests.factories
import
PartnerFactory
from
course_discovery.apps.core.tests.utils
import
mock_api_callback
from
course_discovery.apps.course_metadata.data_loaders.api
import
(
OrganizationsApiDataLoader
,
CoursesApiDataLoader
,
EcommerceApiDataLoader
,
ProgramsApiDataLoader
,
CoursesApiDataLoader
,
EcommerceApiDataLoader
,
OrganizationsApiDataLoader
,
ProgramsApiDataLoader
)
from
course_discovery.apps.course_metadata.data_loaders.marketing_site
import
(
XSeriesMarketingSiteDataLoader
,
Subject
MarketingSiteDataLoader
,
SchoolMarketingSiteDataLoader
,
SponsorMarketingSiteDataLoader
,
PersonMarketingSiteDataLoader
,
Course
MarketingSiteDataLoader
CourseMarketingSiteDataLoader
,
Person
MarketingSiteDataLoader
,
SchoolMarketingSiteDataLoader
,
SponsorMarketingSiteDataLoader
,
SubjectMarketingSiteDataLoader
,
XSeries
MarketingSiteDataLoader
)
from
course_discovery.apps.course_metadata.data_loaders.tests
import
mock_data
from
course_discovery.apps.course_metadata.management.commands.refresh_course_metadata
import
execute_parallel_loader
...
...
course_discovery/apps/course_metadata/migrations/0001_initial.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django_extensions.db.fields
import
django.db.models.deletion
import
django_extensions.db.fields
import
sortedm2m.fields
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0001_squashed_0033_courserun_mobile_available.py
View file @
2b61f239
...
...
@@ -2,10 +2,8 @@
# Generated by Django 1.9.10 on 2016-10-25 17:11
from
__future__
import
unicode_literals
import
course_discovery.apps.course_metadata.utils
from
django.conf
import
settings
from
django.core.exceptions
import
ImproperlyConfigured
from
django.db
import
migrations
,
models
import
uuid
import
django.db.migrations.operations.special
import
django.db.models.deletion
import
django_extensions.db.fields
...
...
@@ -14,7 +12,10 @@ import sortedm2m.fields
import
sortedm2m.operations
import
stdimage.models
import
taggit.managers
import
uuid
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
course_discovery.apps.course_metadata.utils
SEAT_TYPES
=
(
'Audit'
,
'Credit'
,
'Professional'
,
'Verified'
,)
...
...
course_discovery/apps/course_metadata/migrations/0004_program.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django_extensions.db.fields
import
uuid
import
django_extensions.db.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0005_auto_20160713_0113.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
uuid
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0007_auto_20160720_1749.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
sortedm2m.fields
import
django_extensions.db.fields
import
sortedm2m.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0009_auto_20160725_1751.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django.db.models.deletion
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0011_auto_20160805_1949.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django.db.models.deletion
import
django_extensions.db.fields
import
sortedm2m.fields
import
djchoices.choices
import
sortedm2m.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0017_auto_20160815_2135.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
taggit.managers
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0018_auto_20160815_2252.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django_extensions.db.fields
import
uuid
import
django.db.models.deletion
import
django_extensions.db.fields
from
django.db
import
migrations
,
models
def
delete_people
(
apps
,
schema_editor
):
...
...
course_discovery/apps/course_metadata/migrations/0019_program_banner_image.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
stdimage.models
import
stdimage.utils
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0020_auto_20160819_1942.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
stdimage.models
from
django.db
import
migrations
,
models
import
course_discovery.apps.course_metadata.utils
...
...
course_discovery/apps/course_metadata/migrations/0024_auto_20160901_1426.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
djchoices.choices
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0029_auto_20160923_1306.py
View file @
2b61f239
...
...
@@ -5,7 +5,6 @@ from django.db import migrations, models
from
sortedm2m
import
fields
,
operations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
...
...
course_discovery/apps/course_metadata/migrations/0039_programtype_logo_image.py
View file @
2b61f239
...
...
@@ -2,9 +2,9 @@
# Generated by Django 1.9.11 on 2016-12-13 10:57
from
__future__
import
unicode_literals
from
django.db
import
migrations
import
stdimage.models
import
stdimage.utils
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0040_auto_20161220_1644.py
View file @
2b61f239
...
...
@@ -2,8 +2,8 @@
# Generated by Django 1.9.11 on 2016-12-20 16:44
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django_extensions.db.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0044_auto_20170131_1749.py
View file @
2b61f239
...
...
@@ -2,8 +2,8 @@
# Generated by Django 1.9.11 on 2017-01-31 17:49
from
__future__
import
unicode_literals
from
django.db
import
migrations
import
taggit_autosuggest.managers
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0045_person_profile_image.py
View file @
2b61f239
...
...
@@ -2,9 +2,9 @@
# Generated by Django 1.9.11 on 2017-01-23 19:51
from
__future__
import
unicode_literals
from
django.db
import
migrations
import
stdimage.models
import
stdimage.utils
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/migrations/0047_personwork.py
View file @
2b61f239
...
...
@@ -2,9 +2,9 @@
# Generated by Django 1.9.11 on 2017-01-31 19:21
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django.db.models.deletion
import
django_extensions.db.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/course_metadata/models.py
View file @
2b61f239
...
...
@@ -21,13 +21,10 @@ from stdimage.utils import UploadToAutoSlug
from
taggit_autosuggest.managers
import
TaggableManager
from
course_discovery.apps.core.models
import
Currency
,
Partner
from
course_discovery.apps.course_metadata.choices
import
(
CourseRunStatus
,
CourseRunPacing
,
ProgramStatus
,
ReportingType
)
from
course_discovery.apps.course_metadata.choices
import
CourseRunPacing
,
CourseRunStatus
,
ProgramStatus
,
ReportingType
from
course_discovery.apps.course_metadata.publishers
import
MarketingSitePublisher
from
course_discovery.apps.course_metadata.query
import
CourseQuerySet
,
CourseRunQuerySet
,
ProgramQuerySet
from
course_discovery.apps.course_metadata.utils
import
UploadToFieldNamePath
from
course_discovery.apps.course_metadata.utils
import
clean_query
,
custom_render_variations
from
course_discovery.apps.course_metadata.utils
import
UploadToFieldNamePath
,
clean_query
,
custom_render_variations
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
logger
=
logging
.
getLogger
(
__name__
)
...
...
course_discovery/apps/course_metadata/query.py
View file @
2b61f239
...
...
@@ -4,8 +4,7 @@ import pytz
from
django.db
import
models
from
django.db.models.query_utils
import
Q
from
course_discovery.apps.course_metadata.choices
import
CourseRunStatus
from
course_discovery.apps.course_metadata.choices
import
ProgramStatus
from
course_discovery.apps.course_metadata.choices
import
CourseRunStatus
,
ProgramStatus
class
CourseQuerySet
(
models
.
QuerySet
):
...
...
course_discovery/apps/course_metadata/signals.py
View file @
2b61f239
import
waffle
from
django.db.models.signals
import
pre_delete
from
django.dispatch
import
receiver
import
waffle
from
course_discovery.apps.course_metadata.models
import
Program
from
course_discovery.apps.course_metadata.publishers
import
MarketingSitePublisher
...
...
course_discovery/apps/course_metadata/tests/factories.py
View file @
2b61f239
from
datetime
import
datetime
import
factory
from
factory.fuzzy
import
Fuzzy
Text
,
FuzzyChoice
,
FuzzyDateTime
,
FuzzyInteger
,
FuzzyDecimal
from
factory.fuzzy
import
Fuzzy
Choice
,
FuzzyDateTime
,
FuzzyDecimal
,
FuzzyInteger
,
FuzzyText
from
pytz
import
UTC
from
course_discovery.apps.core.tests.factories
import
PartnerFactory
from
course_discovery.apps.core.tests.utils
import
FuzzyURL
from
course_discovery.apps.course_metadata.choices
import
(
CourseRunStatus
,
CourseRunPacing
,
ProgramStatus
,
ReportingType
)
from
course_discovery.apps.course_metadata.models
import
*
# pylint: disable=wildcard-import
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
...
...
course_discovery/apps/course_metadata/tests/mixins.py
View file @
2b61f239
import
json
import
urllib
from
django.test
import
TestCase
from
factory.fuzzy
import
FuzzyText
,
FuzzyInteger
import
responses
from
django.test
import
TestCase
from
factory.fuzzy
import
FuzzyInteger
,
FuzzyText
from
course_discovery.apps.core.tests.utils
import
FuzzyUrlRoot
...
...
course_discovery/apps/course_metadata/tests/test_admin.py
View file @
2b61f239
...
...
@@ -3,7 +3,7 @@ import itertools
import
ddt
from
django.contrib.contenttypes.models
import
ContentType
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
,
LiveServer
TestCase
from
django.test
import
LiveServerTestCase
,
TestCase
from
selenium
import
webdriver
from
selenium.webdriver.common.by
import
By
from
selenium.webdriver.support
import
expected_conditions
as
EC
...
...
@@ -11,7 +11,7 @@ from selenium.webdriver.support.ui import Select
from
selenium.webdriver.support.wait
import
WebDriverWait
from
course_discovery.apps.core.models
import
Partner
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.core.tests.helpers
import
make_image_file
from
course_discovery.apps.course_metadata.choices
import
ProgramStatus
from
course_discovery.apps.course_metadata.forms
import
ProgramAdminForm
...
...
course_discovery/apps/course_metadata/tests/test_lookups.py
View file @
2b61f239
...
...
@@ -4,12 +4,11 @@ import ddt
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
from
course_discovery.apps.core.tests.factories
import
USER_PASSWORD
,
UserFactory
from
course_discovery.apps.course_metadata.tests
import
factories
from
course_discovery.apps.core.tests.factories
import
UserFactory
,
USER_PASSWORD
from
course_discovery.apps.course_metadata.tests.factories
import
PositionFactory
# pylint: disable=no-member
from
course_discovery.apps.course_metadata.tests.factories
import
PositionFactory
@ddt.ddt
...
...
course_discovery/apps/course_metadata/tests/test_models.py
View file @
2b61f239
...
...
@@ -3,6 +3,7 @@ from decimal import Decimal
import
ddt
import
mock
import
responses
from
dateutil.parser
import
parse
from
django.conf
import
settings
from
django.db
import
IntegrityError
...
...
@@ -10,7 +11,6 @@ from django.db.models.functions import Lower
from
django.test
import
TestCase
from
factory.fuzzy
import
FuzzyText
from
freezegun
import
freeze_time
import
responses
from
course_discovery.apps.core.models
import
Currency
from
course_discovery.apps.core.tests.helpers
import
make_image_file
...
...
@@ -18,8 +18,8 @@ from course_discovery.apps.core.tests.mixins import ElasticsearchTestMixin
from
course_discovery.apps.core.utils
import
SearchQuerySetWrapper
from
course_discovery.apps.course_metadata.choices
import
ProgramStatus
from
course_discovery.apps.course_metadata.models
import
(
AbstractMediaModel
,
AbstractNamedModel
,
AbstractValueModel
,
CorporateEndorsement
,
Course
,
CourseRun
,
Endorsement
,
FAQ
,
Seat
,
SeatType
,
ProgramType
,
FAQ
,
AbstractMediaModel
,
AbstractNamedModel
,
AbstractValueModel
,
CorporateEndorsement
,
Course
,
CourseRun
,
Endorsement
,
ProgramType
,
Seat
,
SeatType
)
from
course_discovery.apps.course_metadata.publishers
import
MarketingSitePublisher
from
course_discovery.apps.course_metadata.tests
import
factories
,
toggle_switch
...
...
course_discovery/apps/course_metadata/tests/test_publishers.py
View file @
2b61f239
...
...
@@ -2,16 +2,13 @@ import mock
import
responses
from
course_discovery.apps.course_metadata.choices
import
ProgramStatus
from
course_discovery.apps.course_metadata.models
import
ProgramType
from
course_discovery.apps.course_metadata.publishers
import
(
MarketingSiteAPIClient
,
MarketingSitePublisher
,
ProgramPublisherException
,
MarketingSiteAPIClient
,
MarketingSitePublisher
,
ProgramPublisherException
)
from
course_discovery.apps.course_metadata.tests.factories
import
ProgramFactory
from
course_discovery.apps.course_metadata.tests.mixins
import
MarketingSitePublisherTestMixin
from
course_discovery.apps.course_metadata.models
import
ProgramType
class
MarketingSitePublisherTests
(
MarketingSitePublisherTestMixin
):
"""
...
...
course_discovery/apps/course_metadata/tests/test_query.py
View file @
2b61f239
...
...
@@ -4,8 +4,7 @@ import ddt
import
pytz
from
django.test
import
TestCase
from
course_discovery.apps.course_metadata.choices
import
CourseRunStatus
from
course_discovery.apps.course_metadata.choices
import
ProgramStatus
from
course_discovery.apps.course_metadata.choices
import
CourseRunStatus
,
ProgramStatus
from
course_discovery.apps.course_metadata.models
import
Course
,
CourseRun
,
Program
from
course_discovery.apps.course_metadata.tests.factories
import
CourseRunFactory
,
ProgramFactory
,
SeatFactory
...
...
course_discovery/apps/course_metadata/tests/test_signals.py
View file @
2b61f239
...
...
@@ -6,7 +6,6 @@ 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
MARKETING_SITE_PUBLISHERS_MODULE
=
'course_discovery.apps.course_metadata.publishers.MarketingSitePublisher'
...
...
course_discovery/apps/course_metadata/tests/test_utils.py
View file @
2b61f239
import
os
import
ddt
from
django.test
import
TestCase
import
responses
from
django.test
import
TestCase
from
course_discovery.apps.course_metadata
import
utils
from
course_discovery.apps.course_metadata.exceptions
import
MarketingSiteAPIClientException
from
course_discovery.apps.course_metadata.tests.factories
import
ProgramFactory
from
course_discovery.apps.course_metadata.tests.mixins
import
MarketingSiteAPIClientTestMixin
from
course_discovery.apps.course_metadata
import
utils
@ddt.ddt
...
...
course_discovery/apps/course_metadata/urls.py
View file @
2b61f239
...
...
@@ -3,10 +3,10 @@ URLs for the admin autocomplete lookups.
"""
from
django.conf.urls
import
url
from
course_discovery.apps.course_metadata.views
import
CourseRunSelectionAdmin
from
course_discovery.apps.course_metadata.lookups
import
(
CourseAutocomplete
,
CourseRunAutocomplete
,
OrganizationAutocomplete
,
VideoAutocomplete
,
PersonAutocomplete
)
CourseAutocomplete
,
CourseRunAutocomplete
,
OrganizationAutocomplete
,
PersonAutocomplete
,
VideoAutocomplete
)
from
course_discovery.apps.course_metadata.views
import
CourseRunSelectionAdmin
urlpatterns
=
[
url
(
r'^update_course_runs/(?P<pk>\d+)/$'
,
CourseRunSelectionAdmin
.
as_view
(),
name
=
'update_course_runs'
,),
...
...
course_discovery/apps/course_metadata/utils.py
View file @
2b61f239
from
django.utils.functional
import
cached_property
import
requests
from
django.utils.functional
import
cached_property
from
stdimage.models
import
StdImageFieldFile
from
stdimage.utils
import
UploadTo
...
...
course_discovery/apps/course_metadata/views.py
View file @
2b61f239
from
django.contrib
import
messages
from
django.core.urlresolvers
import
reverse
from
django.http
import
Http
ResponseRedirect
,
Http404
from
django.http
import
Http
404
,
HttpResponseRedirect
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.views.generic
import
TemplateView
,
UpdateView
...
...
course_discovery/apps/edx_catalog_extensions/migrations/0001_squashed_0003_create_publish_to_marketing_site_flag.py
View file @
2b61f239
...
...
@@ -4,7 +4,6 @@ from __future__ import unicode_literals
from
django.db
import
migrations
PAID_SEAT_TYPES
=
(
'credit'
,
'professional'
,
'verified'
,)
PROGRAM_TYPES
=
(
'XSeries'
,
'MicroMasters'
,)
...
...
course_discovery/apps/edx_haystack_extensions/admin.py
View file @
2b61f239
from
django.contrib
import
admin
from
solo.admin
import
SingletonModelAdmin
from
course_discovery.apps.edx_haystack_extensions.models
import
ElasticsearchBoostConfig
from
course_discovery.apps.edx_haystack_extensions.models
import
ElasticsearchBoostConfig
admin
.
site
.
register
(
ElasticsearchBoostConfig
,
SingletonModelAdmin
)
course_discovery/apps/edx_haystack_extensions/management/commands/update_index.py
View file @
2b61f239
...
...
@@ -7,7 +7,6 @@ from haystack.management.commands.update_index import Command as HaystackCommand
from
course_discovery.settings.process_synonyms
import
get_synonyms
logger
=
logging
.
getLogger
(
__name__
)
...
...
course_discovery/apps/edx_haystack_extensions/migrations/0001_initial.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
jsonfield.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/edx_haystack_extensions/migrations/0001_squashed_0002_auto_20160826_1750.py
View file @
2b61f239
...
...
@@ -2,8 +2,8 @@
# Generated by Django 1.9.10 on 2016-11-03 22:19
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
jsonfield.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/edx_haystack_extensions/migrations/0002_auto_20160826_1750.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
jsonfield.fields
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/edx_haystack_extensions/migrations/0002_auto_20170118_1826.py
View file @
2b61f239
...
...
@@ -2,6 +2,7 @@
# Generated by Django 1.9.11 on 2017-01-18 18:26
from
django.db
import
migrations
def
create_or_update_config_record
(
apps
,
schema_editor
):
"""Create or update the ElasticsearchBoostConfig record."""
...
...
course_discovery/apps/edx_haystack_extensions/migrations/0003_auto_20170124_1834.py
View file @
2b61f239
...
...
@@ -4,6 +4,7 @@ from __future__ import unicode_literals
from
django.db
import
migrations
def
add_professional_certificate_boosting
(
apps
,
schema_editor
):
""" Update ElasticsearchBoostConfig to include professional certificate boosting."""
...
...
course_discovery/apps/edx_haystack_extensions/migrations/0004_auto_20170126_1510.py
View file @
2b61f239
...
...
@@ -4,6 +4,7 @@ from __future__ import unicode_literals
from
django.db
import
migrations
def
add_enrollable_paid_seat_boosting
(
apps
,
schema_editor
):
"""Add enrollable paid Seat boosting function to ElasticsearchBoostConfig instance."""
...
...
course_discovery/apps/edx_haystack_extensions/tests/test_backends.py
View file @
2b61f239
...
...
@@ -2,7 +2,7 @@ from django.test import TestCase
from
course_discovery.apps.edx_haystack_extensions.backends
import
EdxElasticsearchSearchBackend
from
course_discovery.apps.edx_haystack_extensions.tests.mixins
import
(
SimpleQuerySearchBackendMixinTestMixin
,
NonClearing
SearchBackendMixinTestMixin
NonClearingSearchBackendMixinTestMixin
,
SimpleQuery
SearchBackendMixinTestMixin
)
...
...
course_discovery/apps/ietf_language_tags/lookups.py
View file @
2b61f239
from
dal
import
autocomplete
from
django.db.models
import
Q
from
dal
import
autocomplete
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
...
...
course_discovery/apps/ietf_language_tags/migrations/0001_squashed_0005_fix_language_tag_names_again.py
View file @
2b61f239
...
...
@@ -3,8 +3,6 @@
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django.db.migrations.operations.special
# Set of language names, language tags. Source: http://ss64.com/locale.html
LANGTAGS
=
(
...
...
course_discovery/apps/ietf_language_tags/tests/test_lookups.py
View file @
2b61f239
...
...
@@ -4,7 +4,7 @@ import ddt
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
...
...
course_discovery/apps/publisher/admin.py
View file @
2b61f239
from
django.contrib
import
admin
from
guardian.admin
import
GuardedModelAdmin
from
course_discovery.apps.publisher.forms
import
UserAttributesAdminForm
,
OrganizationUserRoleForm
,
CourseUserRole
Form
from
course_discovery.apps.publisher.forms
import
CourseUserRoleForm
,
OrganizationUserRoleForm
,
UserAttributesAdmin
Form
from
course_discovery.apps.publisher.models
import
(
Course
,
CourseRun
,
CourseUserRole
,
OrganizationExtension
,
OrganizationUserRole
,
Seat
,
State
,
UserAttributes
)
admin
.
site
.
register
(
Course
)
admin
.
site
.
register
(
CourseRun
)
admin
.
site
.
register
(
Seat
)
...
...
course_discovery/apps/publisher/api/permissions.py
View file @
2b61f239
from
rest_framework.permissions
import
BasePermission
from
course_discovery.apps.publisher.mixins
import
check_
roles_access
,
check_course_organization_permission
from
course_discovery.apps.publisher.mixins
import
check_
course_organization_permission
,
check_roles_access
from
course_discovery.apps.publisher.models
import
OrganizationExtension
from
course_discovery.apps.publisher.utils
import
is_internal_user
,
is_publisher_user
...
...
course_discovery/apps/publisher/api/serializers.py
View file @
2b61f239
"""Publisher API Serializers"""
import
waffle
from
django.apps
import
apps
from
django.utils.translation
import
ugettext_lazy
as
_
from
django_fsm
import
TransitionNotAllowed
...
...
@@ -10,7 +9,7 @@ from rest_framework import serializers
from
course_discovery.apps.core.models
import
User
from
course_discovery.apps.publisher.emails
import
send_email_for_studio_instance_created
from
course_discovery.apps.publisher.models
import
Course
UserRole
,
CourseRun
,
CourseState
,
CourseRunStat
e
from
course_discovery.apps.publisher.models
import
Course
Run
,
CourseRunState
,
CourseState
,
CourseUserRol
e
class
CourseUserRoleSerializer
(
serializers
.
ModelSerializer
):
...
...
course_discovery/apps/publisher/api/tests/test_serializers.py
View file @
2b61f239
...
...
@@ -4,11 +4,11 @@ from rest_framework.exceptions import ValidationError
from
course_discovery.apps.core.tests.factories
import
UserFactory
from
course_discovery.apps.publisher.api.serializers
import
(
Course
UserRoleSerializer
,
GroupUserSerializer
,
UpdateCourseKeySerializer
,
CourseRevision
Serializer
,
CourseStateSerializer
,
CourseRunState
Serializer
Course
RevisionSerializer
,
CourseRunStateSerializer
,
CourseStateSerializer
,
CourseUserRole
Serializer
,
GroupUserSerializer
,
UpdateCourseKey
Serializer
)
from
course_discovery.apps.publisher.choices
import
Course
StateChoices
,
CourseRun
StateChoices
from
course_discovery.apps.publisher.models
import
Course
State
,
CourseRun
State
from
course_discovery.apps.publisher.choices
import
Course
RunStateChoices
,
Course
StateChoices
from
course_discovery.apps.publisher.models
import
Course
RunState
,
Course
State
from
course_discovery.apps.publisher.tests.factories
import
(
CourseFactory
,
CourseRunFactory
,
CourseRunStateFactory
,
CourseStateFactory
,
CourseUserRoleFactory
)
...
...
course_discovery/apps/publisher/api/tests/test_views.py
View file @
2b61f239
...
...
@@ -2,8 +2,6 @@
import
json
import
ddt
from
mock
import
patch
from
django.conf
import
settings
from
django.contrib.auth.models
import
Group
from
django.contrib.sites.models
import
Site
...
...
@@ -11,13 +9,14 @@ from django.core import mail
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
from
guardian.shortcuts
import
assign_perm
from
mock
import
patch
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.course_metadata.tests
import
toggle_switch
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
,
CourseStateChoices
,
CourseRunStateChoices
from
course_discovery.apps.publisher.choices
import
CourseRunStateChoices
,
CourseStateChoices
,
PublisherUserRole
from
course_discovery.apps.publisher.constants
import
INTERNAL_USER_GROUP_NAME
from
course_discovery.apps.publisher.models
import
CourseRun
,
Course
State
,
CourseRun
State
,
OrganizationExtension
from
course_discovery.apps.publisher.tests
import
factories
,
JSON_CONTENT_TYPE
from
course_discovery.apps.publisher.models
import
CourseRun
,
Course
RunState
,
Course
State
,
OrganizationExtension
from
course_discovery.apps.publisher.tests
import
JSON_CONTENT_TYPE
,
factories
@ddt.ddt
...
...
course_discovery/apps/publisher/api/urls.py
View file @
2b61f239
...
...
@@ -2,8 +2,8 @@
from
django.conf.urls
import
url
from
course_discovery.apps.publisher.api.views
import
(
C
ourseRoleAssignmentView
,
OrganizationGroupUserView
,
UpdateCourseKeyView
,
CourseRevisionDetail
View
,
ChangeCourseStateView
,
ChangeCourseRunState
View
C
hangeCourseRunStateView
,
ChangeCourseStateView
,
CourseRevisionDetailView
,
CourseRoleAssignment
View
,
OrganizationGroupUserView
,
UpdateCourseKey
View
)
urlpatterns
=
[
...
...
course_discovery/apps/publisher/api/views.py
View file @
2b61f239
from
rest_framework.generics
import
UpdateAPIView
,
ListAPIView
,
get_object_or_404
,
RetrieveAPIView
from
rest_framework.generics
import
ListAPIView
,
RetrieveAPIView
,
UpdateAPIView
,
get_object_or_404
from
rest_framework.permissions
import
IsAuthenticated
from
course_discovery.apps.core.models
import
User
...
...
@@ -6,11 +6,11 @@ from course_discovery.apps.publisher.api.permissions import (
CanViewAssociatedCourse
,
InternalUserPermission
,
PublisherUserPermission
)
from
course_discovery.apps.publisher.api.serializers
import
(
Course
UserRoleSerializer
,
GroupUserSerializer
,
UpdateCourseKeySerializer
,
CourseRevision
Serializer
,
CourseStateSerializer
,
CourseRunState
Serializer
Course
RevisionSerializer
,
CourseRunStateSerializer
,
CourseStateSerializer
,
CourseUserRole
Serializer
,
GroupUserSerializer
,
UpdateCourseKey
Serializer
)
from
course_discovery.apps.publisher.models
import
(
Course
,
Course
State
,
CourseRun
,
CourseRun
State
,
CourseUserRole
,
OrganizationExtension
Course
,
Course
Run
,
CourseRunState
,
Course
State
,
CourseUserRole
,
OrganizationExtension
)
...
...
course_discovery/apps/publisher/choices.py
View file @
2b61f239
from
django.utils.translation
import
ugettext_lazy
as
_
from
djchoices
import
DjangoChoices
,
ChoiceItem
from
djchoices
import
ChoiceItem
,
DjangoChoices
class
PublisherUserRole
(
DjangoChoices
):
...
...
course_discovery/apps/publisher/emails.py
View file @
2b61f239
...
...
@@ -6,8 +6,8 @@ from django.core.mail.message import EmailMultiAlternatives
from
django.core.urlresolvers
import
reverse
from
django.template.loader
import
get_template
from
django.utils.translation
import
ugettext_lazy
as
_
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
logger
=
logging
.
getLogger
(
__name__
)
...
...
course_discovery/apps/publisher/forms.py
View file @
2b61f239
...
...
@@ -3,18 +3,18 @@ Course publisher forms.
"""
from
dal
import
autocomplete
from
django
import
forms
from
django.template.loader
import
render_to_string
from
django.core.exceptions
import
ValidationError
from
django.template.loader
import
render_to_string
from
django.utils.translation
import
ugettext_lazy
as
_
from
opaque_keys
import
InvalidKeyError
from
opaque_keys.edx.keys
import
CourseKey
from
course_discovery.apps.course_metadata.choices
import
CourseRunPacing
from
course_discovery.apps.course_metadata.models
import
Person
,
Organizati
on
,
Subject
from
course_discovery.apps.course_metadata.models
import
Organization
,
Pers
on
,
Subject
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
from
course_discovery.apps.publisher.mixins
import
LanguageModelSelect2Multiple
,
check_roles_access
from
course_discovery.apps.publisher.models
import
(
Course
,
CourseRun
,
Seat
,
User
,
OrganizationExtension
,
OrganizationUserRole
,
CourseUserRole
Course
,
CourseRun
,
CourseUserRole
,
OrganizationExtension
,
OrganizationUserRole
,
Seat
,
User
)
...
...
course_discovery/apps/publisher/migrations/0001_initial.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
sortedm2m.fields
from
django.conf
import
settings
import
django.db.models.deletion
import
course_discovery.apps.publisher.models
import
django_extensions.db.fields
import
sortedm2m.fields
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0002_auto_20160729_1027.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
sortedm2m.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0003_auto_20160801_1757.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
sortedm2m.fields
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0004_auto_20160810_0854.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
from
django.conf
import
settings
import
django.db.models.deletion
import
django_fsm
import
course_discovery.apps.publisher.models
import
django_extensions.db.fields
import
django_fsm
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0005_auto_20160901_0003.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
djchoices.choices
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0007_auto_20160905_1020.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django.db.models.deletion
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0009_auto_20160929_1927.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
stdimage.models
import
django.db.models.deletion
import
stdimage.models
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
course_discovery.apps.course_metadata.utils
...
...
course_discovery/apps/publisher/migrations/0011_userattributes.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
django_extensions.db.fields
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0012_auto_20161020_0718.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
import
taggit.managers
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0016_auto_20161129_0910.py
View file @
2b61f239
...
...
@@ -2,10 +2,10 @@
# Generated by Django 1.9.11 on 2016-11-29 09:10
from
__future__
import
unicode_literals
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
django.db.models.deletion
import
django_extensions.db.fields
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0017_auto_20161201_1501.py
View file @
2b61f239
...
...
@@ -2,10 +2,10 @@
# Generated by Django 1.9.11 on 2016-12-01 15:01
from
__future__
import
unicode_literals
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
django.db.models.deletion
import
django_extensions.db.fields
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0020_auto_20161214_1304.py
View file @
2b61f239
...
...
@@ -2,10 +2,10 @@
# Generated by Django 1.9.11 on 2016-12-14 12:21
from
__future__
import
unicode_literals
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
django.db.models.deletion
import
django_extensions.db.fields
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0025_auto_20170106_1830.py
View file @
2b61f239
...
...
@@ -2,10 +2,11 @@
# Generated by Django 1.9.11 on 2017-01-04 18:30
from
__future__
import
unicode_literals
import
course_discovery.apps.course_metadata.utils
from
django.db
import
migrations
,
models
import
stdimage.models
import
stdimage.validators
from
django.db
import
migrations
,
models
import
course_discovery.apps.course_metadata.utils
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/migrations/0031_courserunstate_coursestate_historicalcourserunstate_historicalcoursestate.py
View file @
2b61f239
...
...
@@ -2,11 +2,11 @@
# Generated by Django 1.9.11 on 2017-02-01 07:32
from
__future__
import
unicode_literals
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
django.db.models.deletion
import
django_extensions.db.fields
import
django_fsm
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher/mixins.py
View file @
2b61f239
...
...
@@ -6,9 +6,7 @@ from django.http import HttpResponseForbidden, HttpResponseRedirect
from
django.utils.decorators
import
method_decorator
from
course_discovery.apps.publisher.models
import
Course
,
Seat
from
course_discovery.apps.publisher.utils
import
(
is_publisher_admin
,
is_internal_user
,
is_publisher_user
)
from
course_discovery.apps.publisher.utils
import
is_internal_user
,
is_publisher_admin
,
is_publisher_user
class
PublisherPermissionMixin
(
object
):
...
...
course_discovery/apps/publisher/models.py
View file @
2b61f239
import
logging
from
urllib.parse
import
urljoin
import
waffle
from
django.contrib.auth.models
import
Group
from
django.core.urlresolvers
import
reverse
from
django.db
import
models
...
...
@@ -14,14 +15,13 @@ from sortedm2m.fields import SortedManyToManyField
from
stdimage.models
import
StdImageField
from
stdimage.validators
import
MaxSizeValidator
,
MinSizeValidator
from
taggit.managers
import
TaggableManager
import
waffle
from
course_discovery.apps.core.models
import
User
,
Currency
from
course_discovery.apps.core.models
import
Currency
,
User
from
course_discovery.apps.course_metadata.choices
import
CourseRunPacing
from
course_discovery.apps.course_metadata.models
import
LevelType
,
Subject
,
Person
,
Organization
from
course_discovery.apps.course_metadata.models
import
LevelType
,
Organization
,
Person
,
Subject
from
course_discovery.apps.course_metadata.utils
import
UploadToFieldNamePath
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
,
CourseStateChoices
,
CourseRunStateChoices
from
course_discovery.apps.publisher.choices
import
CourseRunStateChoices
,
CourseStateChoices
,
PublisherUserRole
from
course_discovery.apps.publisher.emails
import
send_email_for_change_state
from
course_discovery.apps.publisher.utils
import
is_email_notification_enabled
...
...
course_discovery/apps/publisher/tests/factories.py
View file @
2b61f239
from
datetime
import
datetime
from
django.contrib.auth.models
import
Group
import
factory
from
factory.fuzzy
import
FuzzyText
,
FuzzyChoice
,
FuzzyDecimal
,
FuzzyDateTime
,
FuzzyInteger
from
django.contrib.auth.models
import
Group
# pylint:disable=ungrouped-imports
from
factory.fuzzy
import
FuzzyChoice
,
FuzzyDateTime
,
FuzzyDecimal
,
FuzzyInteger
,
FuzzyText
from
pytz
import
UTC
from
course_discovery.apps.core.models
import
Currency
...
...
@@ -13,8 +13,8 @@ from course_discovery.apps.course_metadata.tests import factories
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
from
course_discovery.apps.publisher.models
import
(
Course
,
CourseRun
,
Course
UserRole
,
OrganizationExtension
,
OrganizationUserRole
,
Seat
,
State
,
UserAttributes
,
CourseState
,
CourseRunState
Course
,
CourseRun
,
Course
RunState
,
CourseState
,
CourseUserRole
,
OrganizationExtension
,
OrganizationUserRole
,
Seat
,
State
,
UserAttributes
)
...
...
course_discovery/apps/publisher/tests/test_context_processors.py
View file @
2b61f239
""" Publisher context processor tests. """
from
django.test
import
TestCase
,
RequestFactory
from
django.test
import
RequestFactory
,
TestCase
from
course_discovery.apps.core.tests.factories
import
UserFactory
from
course_discovery.apps.publisher.context_processors
import
publisher
...
...
course_discovery/apps/publisher/tests/test_emails.py
View file @
2b61f239
# pylint: disable=no-member
import
datetime
import
ddt
import
mock
import
pytz
from
django.conf
import
settings
from
django.contrib.sites.models
import
Site
from
django.core
import
mail
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
from
django.core
import
mail
import
pytz
import
mock
from
testfixtures
import
LogCapture
from
course_discovery.apps.core.tests.factories
import
UserFactory
from
course_discovery.apps.course_metadata.tests
import
toggle_switch
from
course_discovery.apps.publisher
import
emails
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
from
course_discovery.apps.publisher.models
import
State
,
CourseUserRol
e
from
course_discovery.apps.publisher.models
import
CourseUserRole
,
Stat
e
from
course_discovery.apps.publisher.tests
import
factories
from
course_discovery.apps.publisher.tests.factories
import
UserAttributeFactory
...
...
course_discovery/apps/publisher/tests/test_model.py
View file @
2b61f239
# pylint: disable=no-member
import
ddt
from
django.db
import
IntegrityError
from
django.core.urlresolvers
import
reverse
from
django.db
import
IntegrityError
from
django.test
import
TestCase
from
django_fsm
import
TransitionNotAllowed
from
guardian.shortcuts
import
assign_perm
from
course_discovery.apps.core.tests.factories
import
UserFactory
from
course_discovery.apps.course_metadata.tests.factories
import
OrganizationFactory
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
,
CourseStateChoices
,
CourseRunStateChoices
from
course_discovery.apps.publisher.choices
import
CourseRunStateChoices
,
CourseStateChoices
,
PublisherUserRole
from
course_discovery.apps.publisher.mixins
import
check_course_organization_permission
from
course_discovery.apps.publisher.models
import
(
State
,
CourseUserRole
,
OrganizationExtension
,
OrganizationUserRole
)
from
course_discovery.apps.publisher.models
import
CourseUserRole
,
OrganizationExtension
,
OrganizationUserRole
,
State
from
course_discovery.apps.publisher.tests
import
factories
...
...
course_discovery/apps/publisher/tests/test_utils.py
View file @
2b61f239
""" Tests publisher.utils"""
import
ddt
from
django.contrib.auth.models
import
Group
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
,
RequestFactory
from
django.test
import
RequestFactory
,
TestCase
from
guardian.shortcuts
import
assign_perm
from
mock
import
Mock
from
guardian.shortcuts
import
assign_perm
from
course_discovery.apps.core.tests.factories
import
UserFactory
from
course_discovery.apps.publisher.constants
import
(
REVIEWER_GROUP_NAME
,
ADMIN_GROUP_NAME
,
INTERNAL_USER_GROUP_NAME
,
PARTNER_COORDINATOR_GROUP_NAME
ADMIN_GROUP_NAME
,
INTERNAL_USER_GROUP_NAME
,
PARTNER_COORDINATOR_GROUP_NAME
,
REVIEWER_GROUP_NAME
)
from
course_discovery.apps.publisher.mixins
import
(
check_course_organization_permission
,
check_roles_access
,
publisher_user_required
check_course_organization_permission
,
check_roles_access
,
publisher_user_required
)
from
course_discovery.apps.publisher.models
import
OrganizationExtension
from
course_discovery.apps.publisher.tests
import
factories
from
course_discovery.apps.publisher.utils
import
(
is_email_notification_enabled
,
is_publisher_admin
,
is_internal_user
,
get_internal_users
,
is_partner_coordinator_user
,
is_publisher_user
,
make_bread_crumbs
get_internal_users
,
is_email_notification_enabled
,
is_internal_user
,
is_partner_coordinator_user
,
is_publisher_admin
,
is_publisher_user
,
make_bread_crumbs
)
...
...
course_discovery/apps/publisher/tests/test_views.py
View file @
2b61f239
...
...
@@ -4,40 +4,37 @@ from datetime import datetime, timedelta
import
ddt
import
factory
from
mock
import
patch
from
django.db
import
IntegrityError
from
django.conf
import
settings
from
django.contrib.auth.models
import
Group
from
django.contrib.sites.models
import
Site
from
django.core.urlresolvers
import
reverse
from
django.core
import
mail
from
django.core.urlresolvers
import
reverse
from
django.db
import
IntegrityError
from
django.forms
import
model_to_dict
from
django.test
import
TestCase
from
guardian.shortcuts
import
assign_perm
from
mock
import
patch
from
testfixtures
import
LogCapture
from
course_discovery.apps.core.models
import
User
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.core.tests.helpers
import
make_image_file
from
course_discovery.apps.course_metadata.tests
import
toggle_switch
from
course_discovery.apps.course_metadata.tests.factories
import
OrganizationFactory
from
course_discovery.apps.ietf_language_tags.models
import
LanguageTag
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
from
course_discovery.apps.publisher.constants
import
(
INTERNAL_USER_GROUP_NAME
,
ADMIN
_GROUP_NAME
,
PARTNER_COORDINATOR_GROUP_NAME
,
REVIEWER_GROUP_NAME
ADMIN_GROUP_NAME
,
INTERNAL_USER
_GROUP_NAME
,
PARTNER_COORDINATOR_GROUP_NAME
,
REVIEWER_GROUP_NAME
)
from
course_discovery.apps.publisher.models
import
Course
,
CourseRun
,
Seat
,
State
,
OrganizationExtension
from
course_discovery.apps.publisher.models
import
Course
,
CourseRun
,
OrganizationExtension
,
Seat
,
State
from
course_discovery.apps.publisher.tests
import
factories
from
course_discovery.apps.publisher.tests.utils
import
create_non_staff_user_and_login
from
course_discovery.apps.publisher.utils
import
is_email_notification_enabled
,
get_internal_users
from
course_discovery.apps.publisher.views
import
(
CourseRunDetailView
,
logger
as
publisher_views_logger
,
ROLE_WIDGET_HEADINGS
)
from
course_discovery.apps.publisher.utils
import
get_internal_users
,
is_email_notification_enabled
from
course_discovery.apps.publisher.views
import
logger
as
publisher_views_logger
from
course_discovery.apps.publisher.views
import
ROLE_WIDGET_HEADINGS
,
CourseRunDetailView
from
course_discovery.apps.publisher.wrappers
import
CourseRunWrapper
from
course_discovery.apps.publisher_comments.tests.factories
import
CommentFactory
IMAGE_TOO_SMALL
=
'The image you uploaded is too small. The required minimum resolution is: 2120x1192 px.'
IMAGE_TOO_LARGE
=
'The image you uploaded is too large. The required maximum resolution is: 2120x1192 px.'
...
...
course_discovery/apps/publisher/tests/test_wrapper.py
View file @
2b61f239
...
...
@@ -2,8 +2,8 @@
from
datetime
import
datetime
,
timedelta
from
unittest
import
mock
from
django.test
import
TestCase
import
ddt
from
django.test
import
TestCase
from
course_discovery.apps.course_metadata.choices
import
CourseRunPacing
from
course_discovery.apps.course_metadata.tests.factories
import
OrganizationFactory
...
...
course_discovery/apps/publisher/tests/utils.py
View file @
2b61f239
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.publisher.tests
import
factories
...
...
course_discovery/apps/publisher/urls.py
View file @
2b61f239
"""
URLs for the course publisher views.
"""
from
django.conf.urls
import
url
,
include
from
django.conf.urls
import
include
,
url
from
course_discovery.apps.publisher
import
views
...
...
course_discovery/apps/publisher/views.py
View file @
2b61f239
...
...
@@ -4,33 +4,28 @@ Course publisher views.
import
json
import
logging
from
datetime
import
datetime
,
timedelta
import
waffle
import
waffle
from
django.contrib
import
messages
from
django.core.urlresolvers
import
reverse
from
django.core.exceptions
import
ObjectDoesNotExist
from
django.core.urlresolvers
import
reverse
from
django.db
import
transaction
from
django.http
import
Http
ResponseRedirect
,
JsonResponse
,
Http404
from
django.shortcuts
import
render
,
get_object_or_404
from
django.http
import
Http
404
,
HttpResponseRedirect
,
JsonResponse
from
django.shortcuts
import
get_object_or_404
,
render
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.views.generic
import
View
,
CreateView
,
UpdateView
,
DetailView
,
List
View
from
django.views.generic
import
CreateView
,
DetailView
,
ListView
,
UpdateView
,
View
from
django_fsm
import
TransitionNotAllowed
from
guardian.shortcuts
import
get_objects_for_user
from
course_discovery.apps.core.models
import
User
from
course_discovery.apps.publisher
import
emails
,
mixins
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
from
course_discovery.apps.publisher
import
emails
from
course_discovery.apps.publisher.forms
import
(
SeatForm
,
CustomCourseForm
,
CustomCourseRunForm
,
CustomSeatForm
)
from
course_discovery.apps.publisher
import
mixins
from
course_discovery.apps.publisher.forms
import
CustomCourseForm
,
CustomCourseRunForm
,
CustomSeatForm
,
SeatForm
from
course_discovery.apps.publisher.models
import
(
Course
,
CourseRun
,
Seat
,
State
,
UserAttributes
,
OrganizationExtension
,
CourseUserRole
)
Course
,
CourseRun
,
CourseUserRole
,
OrganizationExtension
,
Seat
,
State
,
UserAttributes
)
from
course_discovery.apps.publisher.utils
import
(
is_internal_user
,
get_internal_users
,
is_publisher_admin
,
is_partner_coordinator_user
,
make_bread_crumbs
get_internal_users
,
is_internal_user
,
is_partner_coordinator_user
,
is_publisher_admin
,
make_bread_crumbs
)
from
course_discovery.apps.publisher.wrappers
import
CourseRunWrapper
...
...
course_discovery/apps/publisher_comments/api/serializers.py
View file @
2b61f239
from
rest_framework
import
serializers
from
course_discovery.apps.publisher_comments.models
import
Comments
...
...
course_discovery/apps/publisher_comments/api/tests/test_views.py
View file @
2b61f239
...
...
@@ -3,7 +3,7 @@ import json
from
django.test
import
TestCase
from
rest_framework.reverse
import
reverse
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.publisher.tests
import
JSON_CONTENT_TYPE
from
course_discovery.apps.publisher_comments.models
import
Comments
from
course_discovery.apps.publisher_comments.tests.factories
import
CommentFactory
...
...
course_discovery/apps/publisher_comments/emails.py
View file @
2b61f239
...
...
@@ -8,7 +8,6 @@ from django.utils.translation import ugettext_lazy as _
from
course_discovery.apps.publisher.models
import
CourseRun
log
=
logging
.
getLogger
(
__name__
)
...
...
course_discovery/apps/publisher_comments/forms.py
View file @
2b61f239
from
django
import
forms
from
django.contrib.contenttypes.models
import
ContentType
from
django_comments.forms
import
CommentForm
from
course_discovery.apps.publisher_comments.models
import
Comments
...
...
course_discovery/apps/publisher_comments/migrations/0001_initial.py
View file @
2b61f239
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
from
django.db
import
migrations
,
models
from
django.conf
import
settings
import
django.db.models.deletion
import
django_extensions.db.fields
from
django.conf
import
settings
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
...
...
course_discovery/apps/publisher_comments/models.py
View file @
2b61f239
import
waffle
from
django.db.models.signals
import
post_save
from
django.dispatch
import
receiver
from
django.utils.translation
import
ugettext_lazy
as
_
from
django_comments.models
import
CommentAbstractModel
from
django_extensions.db.fields
import
ModificationDateTimeField
import
waffle
from
course_discovery.apps.publisher_comments.emails
import
send_email_for_comment
...
...
course_discovery/apps/publisher_comments/tests/factories.py
View file @
2b61f239
from
django.contrib.sites.models
import
Site
import
factory
from
factory.fuzzy
import
FuzzyText
from
django.contrib.sites.models
import
Site
from
course_discovery.apps.core.tests.factories
import
UserFactory
from
course_discovery.apps.publisher.tests.factories
import
CourseRunFactory
...
...
@@ -15,7 +13,7 @@ class SiteFactory(factory.DjangoModelFactory): # pylint: disable=missing-docstr
class
CommentFactory
(
factory
.
DjangoModelFactory
):
comment
=
FuzzyText
(
prefix
=
"Test Comment for çօմɾʂҽ"
)
comment
=
factory
.
fuzzy
.
FuzzyText
(
prefix
=
"Test Comment for çօմɾʂҽ"
)
content_object
=
factory
.
SubFactory
(
CourseRunFactory
)
user
=
factory
.
SubFactory
(
UserFactory
)
site
=
factory
.
SubFactory
(
SiteFactory
)
...
...
course_discovery/apps/publisher_comments/tests/test_admin.py
View file @
2b61f239
...
...
@@ -3,10 +3,10 @@ from django.contrib.sites.models import Site
from
django.core.urlresolvers
import
reverse
from
django.test
import
TestCase
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.publisher.tests
import
factories
from
course_discovery.apps.publisher_comments.tests.factories
import
CommentFactory
from
course_discovery.apps.publisher_comments.forms
import
CommentsAdminForm
from
course_discovery.apps.publisher_comments.tests.factories
import
CommentFactory
class
AdminTests
(
TestCase
):
...
...
course_discovery/apps/publisher_comments/tests/test_views.py
View file @
2b61f239
...
...
@@ -5,7 +5,7 @@ from django.core.urlresolvers import reverse
from
django.forms
import
model_to_dict
from
django.test
import
TestCase
from
course_discovery.apps.core.tests.factories
import
U
serFactory
,
USER_PASSWORD
from
course_discovery.apps.core.tests.factories
import
U
SER_PASSWORD
,
UserFactory
from
course_discovery.apps.course_metadata.tests
import
toggle_switch
from
course_discovery.apps.publisher.choices
import
PublisherUserRole
from
course_discovery.apps.publisher.models
import
Seat
...
...
course_discovery/apps/publisher_comments/urls.py
View file @
2b61f239
"""
URLs for the course publisher comments views.
"""
from
django.conf.urls
import
url
,
include
from
django.conf.urls
import
include
,
url
from
course_discovery.apps.publisher_comments
import
views
...
...
course_discovery/settings/base.py
View file @
2b61f239
import
os
import
platform
from
logging.handlers
import
SysLogHandler
from
os.path
import
join
,
abspath
,
dirname
from
os.path
import
abspath
,
dirname
,
join
from
sys
import
path
here
=
lambda
*
x
:
join
(
abspath
(
dirname
(
__file__
)),
*
x
)
PROJECT_ROOT
=
here
(
".."
)
root
=
lambda
*
x
:
join
(
abspath
(
PROJECT_ROOT
),
*
x
)
...
...
@@ -480,4 +479,3 @@ if os.environ.get('ENABLE_DJANGO_TOOLBAR', False):
'debug_toolbar.panels.redirects.RedirectsPanel'
,
'elastic_panel.panel.ElasticDebugPanel'
]
course_discovery/settings/devstack_test.py
View file @
2b61f239
from
course_discovery.settings.devstack
import
*
# noinspection PyUnresolvedReferences
from
course_discovery.settings.shared.test
import
*
from
course_discovery.settings.shared.test
import
*
# isort:skip
JWT_AUTH
[
'JWT_SECRET_KEY'
]
=
'course-discovery-jwt-secret-key'
...
...
course_discovery/settings/docs_settings.py
View file @
2b61f239
# The bare minimum needed for Sphinx to import each file and generate documentation.
# noinspection PyUnresolvedReferences
from
course_discovery.settings.base
import
*
DATABASES
=
{
...
...
course_discovery/settings/process_synonyms.py
View file @
2b61f239
from
functools
import
lru_cache
import
importlib
from
functools
import
lru_cache
from
django.conf
import
settings
def
process_synonyms
(
es
,
synonyms
):
"""Convert synonyms to analyzed form with snowball analyzer.
...
...
@@ -25,10 +26,12 @@ def process_synonyms(es, synonyms):
processed_synonyms
.
append
(
processed_line
)
return
processed_synonyms
def
get_synonym_lines_from_file
():
synonyms_module
=
importlib
.
import_module
(
settings
.
SYNONYMS_MODULE
)
return
synonyms_module
.
SYNONYMS
@lru_cache
()
def
get_synonyms
(
es
):
synonyms
=
get_synonym_lines_from_file
()
...
...
course_discovery/settings/shared/test.py
View file @
2b61f239
import
os
HAYSTACK_CONNECTIONS
=
{
'default'
:
{
'ENGINE'
:
'course_discovery.apps.edx_haystack_extensions.backends.EdxElasticsearchSearchEngine'
,
...
...
course_discovery/settings/test.py
View file @
2b61f239
import
os
from
course_discovery.settings.base
import
*
# noinspection PyUnresolvedReferences
from
course_discovery.settings.shared.test
import
*
INSTALLED_APPS
+=
[
'course_discovery.apps.edx_catalog_extensions'
,
]
...
...
course_discovery/wsgi.py
View file @
2b61f239
...
...
@@ -15,6 +15,6 @@ path.append(SITE_ROOT)
os
.
environ
.
setdefault
(
"DJANGO_SETTINGS_MODULE"
,
"course_discovery.settings.local"
)
from
django.core.wsgi
import
get_wsgi_application
from
django.core.wsgi
import
get_wsgi_application
# isort:skip
application
=
get_wsgi_application
()
# pylint: disable=invalid-name
requirements/test.txt
View file @
2b61f239
...
...
@@ -6,6 +6,7 @@ ddt==1.1.0
edx-lint==0.5.2
factory-boy==2.8.1
freezegun==0.3.7
isort==4.2.5
lxml==3.6.1
mock==2.0.0
pep8==1.7.0
...
...
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