Retrofit programs data mixin with factories
This should make it easier to test programs-related features. Preface to ECOM-3200.
This commit is contained in:
@@ -4,67 +4,16 @@ Tools to create programs-related data for use in bok choy tests.
|
||||
from collections import namedtuple
|
||||
import json
|
||||
|
||||
import factory
|
||||
import requests
|
||||
|
||||
from . import PROGRAMS_STUB_URL
|
||||
from .config import ConfigModelFixture
|
||||
from openedx.core.djangoapps.programs.tests import factories
|
||||
|
||||
|
||||
FakeProgram = namedtuple('FakeProgram', ['name', 'status', 'org_key', 'course_id'])
|
||||
|
||||
|
||||
class Program(factory.Factory):
|
||||
"""
|
||||
Factory for stubbing program resources from the Programs API (v1).
|
||||
"""
|
||||
class Meta(object):
|
||||
model = dict
|
||||
|
||||
id = factory.Sequence(lambda n: n) # pylint: disable=invalid-name
|
||||
name = 'dummy-program-name'
|
||||
subtitle = 'dummy-program-subtitle'
|
||||
category = 'xseries'
|
||||
status = 'unpublished'
|
||||
marketing_slug = factory.Sequence(lambda n: 'slug-{}'.format(n)) # pylint: disable=unnecessary-lambda
|
||||
organizations = []
|
||||
course_codes = []
|
||||
banner_image_urls = {}
|
||||
|
||||
|
||||
class Organization(factory.Factory):
|
||||
"""
|
||||
Factory for stubbing nested organization resources from the Programs API (v1).
|
||||
"""
|
||||
class Meta(object):
|
||||
model = dict
|
||||
|
||||
key = 'dummyX'
|
||||
display_name = 'dummy-org-display-name'
|
||||
|
||||
|
||||
class CourseCode(factory.Factory):
|
||||
"""
|
||||
Factory for stubbing nested course code resources from the Programs API (v1).
|
||||
"""
|
||||
class Meta(object):
|
||||
model = dict
|
||||
|
||||
display_name = 'dummy-org-display-name'
|
||||
run_modes = []
|
||||
|
||||
|
||||
class RunMode(factory.Factory):
|
||||
"""
|
||||
Factory for stubbing nested run mode resources from the Programs API (v1).
|
||||
"""
|
||||
class Meta(object):
|
||||
model = dict
|
||||
|
||||
course_key = 'org/course/run'
|
||||
mode_slug = 'verified'
|
||||
|
||||
|
||||
class ProgramsFixture(object):
|
||||
"""
|
||||
Interface to set up mock responses from the Programs stub server.
|
||||
@@ -78,11 +27,11 @@ class ProgramsFixture(object):
|
||||
"""
|
||||
programs = []
|
||||
for program in fake_programs:
|
||||
run_mode = RunMode(course_key=program.course_id)
|
||||
course_code = CourseCode(run_modes=[run_mode])
|
||||
org = Organization(key=program.org_key)
|
||||
run_mode = factories.RunMode(course_key=program.course_id)
|
||||
course_code = factories.CourseCode(run_modes=[run_mode])
|
||||
org = factories.Organization(key=program.org_key)
|
||||
|
||||
program = Program(
|
||||
program = factories.Program(
|
||||
name=program.name,
|
||||
status=program.status,
|
||||
organizations=[org],
|
||||
|
||||
Reference in New Issue
Block a user