Commit 2707988e by Clinton Blackburn Committed by Clinton Blackburn

Updated publisher app factories

- Added ability to specify Course organizations at creation time
- Removed hard-coded values

LEARNER-2460
parent adc154ec
...@@ -4,10 +4,15 @@ from django.contrib.sites.models import Site ...@@ -4,10 +4,15 @@ from django.contrib.sites.models import Site
from course_discovery.apps.core.models import Partner, User from course_discovery.apps.core.models import Partner, User
from course_discovery.apps.core.tests.utils import FuzzyUrlRoot from course_discovery.apps.core.tests.utils import FuzzyUrlRoot
USER_PASSWORD = 'password' USER_PASSWORD = 'password'
def add_m2m_data(m2m_relation, data):
""" Helper function to enable factories to easily associate many-to-many data with created objects. """
if data:
m2m_relation.add(*data)
class SiteFactory(factory.DjangoModelFactory): class SiteFactory(factory.DjangoModelFactory):
class Meta: class Meta:
model = Site model = Site
......
...@@ -4,7 +4,7 @@ import factory ...@@ -4,7 +4,7 @@ import factory
from factory.fuzzy import FuzzyChoice, FuzzyDateTime, FuzzyDecimal, FuzzyInteger, FuzzyText from factory.fuzzy import FuzzyChoice, FuzzyDateTime, FuzzyDecimal, FuzzyInteger, FuzzyText
from pytz import UTC from pytz import UTC
from course_discovery.apps.core.tests.factories import PartnerFactory from course_discovery.apps.core.tests.factories import PartnerFactory, add_m2m_data
from course_discovery.apps.core.tests.utils import FuzzyURL from course_discovery.apps.core.tests.utils import FuzzyURL
from course_discovery.apps.course_metadata.models import * # pylint: disable=wildcard-import from course_discovery.apps.course_metadata.models import * # pylint: disable=wildcard-import
from course_discovery.apps.ietf_language_tags.models import LanguageTag from course_discovery.apps.ietf_language_tags.models import LanguageTag
...@@ -12,12 +12,6 @@ from course_discovery.apps.ietf_language_tags.models import LanguageTag ...@@ -12,12 +12,6 @@ from course_discovery.apps.ietf_language_tags.models import LanguageTag
# pylint: disable=no-member, unused-argument # pylint: disable=no-member, unused-argument
def add_m2m_data(m2m_relation, data):
""" Helper function to enable factories to easily associate many-to-many data with created objects. """
if data:
for datum in data:
m2m_relation.add(datum)
class AbstractMediaModelFactory(factory.DjangoModelFactory): class AbstractMediaModelFactory(factory.DjangoModelFactory):
src = FuzzyURL() src = FuzzyURL()
......
...@@ -7,7 +7,7 @@ from factory.fuzzy import FuzzyChoice, FuzzyDateTime, FuzzyDecimal, FuzzyInteger ...@@ -7,7 +7,7 @@ from factory.fuzzy import FuzzyChoice, FuzzyDateTime, FuzzyDecimal, FuzzyInteger
from pytz import UTC from pytz import UTC
from course_discovery.apps.core.models import Currency from course_discovery.apps.core.models import Currency
from course_discovery.apps.core.tests.factories import UserFactory from course_discovery.apps.core.tests.factories import UserFactory, add_m2m_data
from course_discovery.apps.course_metadata.choices import CourseRunPacing from course_discovery.apps.course_metadata.choices import CourseRunPacing
from course_discovery.apps.course_metadata.tests import factories from course_discovery.apps.course_metadata.tests import factories
from course_discovery.apps.ietf_language_tags.models import LanguageTag from course_discovery.apps.ietf_language_tags.models import LanguageTag
...@@ -19,21 +19,26 @@ from course_discovery.apps.publisher.models import ( ...@@ -19,21 +19,26 @@ from course_discovery.apps.publisher.models import (
class CourseFactory(factory.DjangoModelFactory): class CourseFactory(factory.DjangoModelFactory):
title = FuzzyText(prefix="Test çօմɾʂҽ ") title = FuzzyText()
short_description = FuzzyText(prefix="Test çօմɾʂҽ short description") short_description = FuzzyText()
full_description = FuzzyText(prefix="Test çօմɾʂҽ FULL description") full_description = FuzzyText()
number = FuzzyText() number = FuzzyText()
prerequisites = "prereq 1, prereq 2, prereq 3" prerequisites = FuzzyText()
expected_learnings = "learning 1, learning 2, learning 3" expected_learnings = FuzzyText()
syllabus = "week 1: awesomeness" syllabus = FuzzyText()
learner_testimonial = "Best course ever!" learner_testimonial = FuzzyText()
level_type = factory.SubFactory(factories.LevelTypeFactory) level_type = factory.SubFactory(factories.LevelTypeFactory)
primary_subject = factory.SubFactory(factories.SubjectFactory) primary_subject = factory.SubFactory(factories.SubjectFactory)
secondary_subject = factory.SubFactory(factories.SubjectFactory) secondary_subject = factory.SubFactory(factories.SubjectFactory)
tertiary_subject = factory.SubFactory(factories.SubjectFactory) tertiary_subject = factory.SubFactory(factories.SubjectFactory)
faq = FuzzyText(prefix='Frequently asked questions') faq = FuzzyText()
video_link = FuzzyText(prefix='http://video.com/çօմɾʂҽ/') video_link = factory.Faker('url')
@factory.post_generation
def organizations(self, create, extracted, **kwargs): # pylint: disable=unused-argument
if create:
add_m2m_data(self.organizations, extracted)
class Meta: class Meta:
model = Course model = Course
...@@ -49,10 +54,10 @@ class CourseRunFactory(factory.DjangoModelFactory): ...@@ -49,10 +54,10 @@ class CourseRunFactory(factory.DjangoModelFactory):
min_effort = FuzzyInteger(1, 10) min_effort = FuzzyInteger(1, 10)
max_effort = FuzzyInteger(10, 20) max_effort = FuzzyInteger(10, 20)
language = factory.Iterator(LanguageTag.objects.all()) language = factory.Iterator(LanguageTag.objects.all())
pacing_type = FuzzyChoice([name for name, __ in CourseRunPacing.choices]) pacing_type = FuzzyChoice(CourseRunPacing.values.keys())
length = FuzzyInteger(1, 10) length = FuzzyInteger(1, 10)
notes = "Testing notes" notes = FuzzyText()
preview_url = FuzzyText(prefix='https://example.com/') preview_url = factory.Faker('url')
contacted_partner_manager = FuzzyChoice((True, False)) contacted_partner_manager = FuzzyChoice((True, False))
video_language = factory.Iterator(LanguageTag.objects.all()) video_language = factory.Iterator(LanguageTag.objects.all())
short_description_override = FuzzyText() short_description_override = FuzzyText()
...@@ -76,7 +81,7 @@ class SeatFactory(factory.DjangoModelFactory): ...@@ -76,7 +81,7 @@ class SeatFactory(factory.DjangoModelFactory):
class GroupFactory(factory.DjangoModelFactory): class GroupFactory(factory.DjangoModelFactory):
name = FuzzyText(prefix="Test Group ") name = FuzzyText()
class Meta: class Meta:
model = Group model = Group
......
...@@ -146,11 +146,8 @@ class OrganizationUserRoleAdminTests(SiteMixin, TestCase): ...@@ -146,11 +146,8 @@ class OrganizationUserRoleAdminTests(SiteMixin, TestCase):
self.organization = OrganizationFactory() self.organization = OrganizationFactory()
self.course1 = CourseFactory() self.course1 = CourseFactory(organizations=[self.organization])
self.course2 = CourseFactory() self.course2 = CourseFactory(organizations=[self.organization])
self.course1.organizations.add(self.organization)
self.course2.organizations.add(self.organization)
@ddt.data( @ddt.data(
(PublisherUserRole.MarketingReviewer, REVIEWER_GROUP_NAME), (PublisherUserRole.MarketingReviewer, REVIEWER_GROUP_NAME),
...@@ -184,14 +181,12 @@ class OrganizationUserRoleAdminTests(SiteMixin, TestCase): ...@@ -184,14 +181,12 @@ class OrganizationUserRoleAdminTests(SiteMixin, TestCase):
""" """
# for course 3 add course roles # for course 3 add course roles
user = UserFactory() user = UserFactory()
course3 = CourseFactory() course3 = CourseFactory(organizations=[self.organization])
course3.organizations.add(self.organization)
factories.CourseUserRoleFactory(course=course3, role=PublisherUserRole.MarketingReviewer, user=user) factories.CourseUserRoleFactory(course=course3, role=PublisherUserRole.MarketingReviewer, user=user)
# for course 4 add course roles # for course 4 add course roles
project_coordinator = UserFactory() project_coordinator = UserFactory()
course4 = CourseFactory() course4 = CourseFactory(organizations=[self.organization])
course4.organizations.add(self.organization)
factories.CourseUserRoleFactory(course=course4, role=PublisherUserRole.ProjectCoordinator, factories.CourseUserRoleFactory(course=course4, role=PublisherUserRole.ProjectCoordinator,
user=project_coordinator) user=project_coordinator)
......
...@@ -192,9 +192,8 @@ class PublisherCustomCourseFormTests(TestCase): ...@@ -192,9 +192,8 @@ class PublisherCustomCourseFormTests(TestCase):
def setUp(self): def setUp(self):
super(PublisherCustomCourseFormTests, self).setUp() super(PublisherCustomCourseFormTests, self).setUp()
self.course_form = CustomCourseForm() self.course_form = CustomCourseForm()
self.course = CourseFactory(title="Test", number="a123")
self.organization = OrganizationFactory() self.organization = OrganizationFactory()
self.course.organizations.add(self.organization) self.course = CourseFactory(title='Test', number='a123', organizations=[self.organization])
def setup_course(self, **course_kwargs): def setup_course(self, **course_kwargs):
""" """
...@@ -204,13 +203,16 @@ class PublisherCustomCourseFormTests(TestCase): ...@@ -204,13 +203,16 @@ class PublisherCustomCourseFormTests(TestCase):
course: a course object course: a course object
course_admin: a user object course_admin: a user object
""" """
course = CourseFactory(**course_kwargs)
course_admin = UserFactory(username='course_admin')
organization_extension = OrganizationExtensionFactory() organization_extension = OrganizationExtensionFactory()
organization = organization_extension.organization defaults = {
'organizations': [organization_extension.organization],
}
defaults.update(course_kwargs)
course = CourseFactory(**defaults)
course_admin = UserFactory()
course_admin.groups.add(organization_extension.group) course_admin.groups.add(organization_extension.group)
course.organizations.add(organization)
return course, course_admin return course, course_admin
def test_duplicate_title(self): def test_duplicate_title(self):
...@@ -245,7 +247,7 @@ class PublisherCustomCourseFormTests(TestCase): ...@@ -245,7 +247,7 @@ class PublisherCustomCourseFormTests(TestCase):
updating the course updating the course
""" """
course, course_admin = self.setup_course(title='test_course') course, course_admin = self.setup_course(title='test_course')
organization = course.organizations.all()[0].id organization = course.organizations.first().id
course_from_data = { course_from_data = {
'title': 'áçã', 'title': 'áçã',
'number': course.number, 'number': course.number,
......
...@@ -151,22 +151,19 @@ class CourseTests(TestCase): ...@@ -151,22 +151,19 @@ class CourseTests(TestCase):
def setUp(self): def setUp(self):
super(CourseTests, self).setUp() super(CourseTests, self).setUp()
self.course = factories.CourseFactory() self.org_extension_1 = factories.OrganizationExtensionFactory()
self.course2 = factories.CourseFactory() self.org_extension_2 = factories.OrganizationExtensionFactory()
self.course = factories.CourseFactory(organizations=[self.org_extension_1.organization])
self.course2 = factories.CourseFactory(organizations=[self.org_extension_2.organization])
self.user1 = UserFactory() self.user1 = UserFactory()
self.user2 = UserFactory() self.user2 = UserFactory()
self.user3 = UserFactory() self.user3 = UserFactory()
self.org_extension_1 = factories.OrganizationExtensionFactory()
self.org_extension_2 = factories.OrganizationExtensionFactory()
self.user1.groups.add(self.org_extension_1.group) self.user1.groups.add(self.org_extension_1.group)
self.user2.groups.add(self.org_extension_2.group) self.user2.groups.add(self.org_extension_2.group)
self.course.organizations.add(self.org_extension_1.organization)
self.course2.organizations.add(self.org_extension_2.organization)
# add user in course-user-role table # add user in course-user-role table
factories.CourseUserRoleFactory( factories.CourseUserRoleFactory(
course=self.course, role=PublisherUserRole.ProjectCoordinator, user=self.user1 course=self.course, role=PublisherUserRole.ProjectCoordinator, user=self.user1
......
...@@ -28,11 +28,10 @@ class PublisherUtilsTests(TestCase): ...@@ -28,11 +28,10 @@ class PublisherUtilsTests(TestCase):
def setUp(self): def setUp(self):
super(PublisherUtilsTests, self).setUp() super(PublisherUtilsTests, self).setUp()
self.user = UserFactory() self.user = UserFactory()
self.course = factories.CourseFactory() self.organization_extension = factories.OrganizationExtensionFactory()
self.course = factories.CourseFactory(organizations=[self.organization_extension.organization])
self.admin_group = Group.objects.get(name=ADMIN_GROUP_NAME) self.admin_group = Group.objects.get(name=ADMIN_GROUP_NAME)
self.internal_user_group = Group.objects.get(name=INTERNAL_USER_GROUP_NAME) self.internal_user_group = Group.objects.get(name=INTERNAL_USER_GROUP_NAME)
self.organization_extension = factories.OrganizationExtensionFactory()
self.course.organizations.add(self.organization_extension.organization)
def test_email_notification_enabled_by_default(self): def test_email_notification_enabled_by_default(self):
""" Test email notification is enabled for the user by default.""" """ Test email notification is enabled for the user by default."""
......
...@@ -62,10 +62,8 @@ class CreateCourseViewTests(SiteMixin, TestCase): ...@@ -62,10 +62,8 @@ class CreateCourseViewTests(SiteMixin, TestCase):
self.group = self.organization_extension.group self.group = self.organization_extension.group
self.user.groups.add(self.group) self.user.groups.add(self.group)
# create base course object self.course = factories.CourseFactory(organizations=[self.organization_extension.organization])
self.course = factories.CourseFactory()
self.course.organizations.add(self.organization_extension.organization)
self.client.login(username=self.user.username, password=USER_PASSWORD) self.client.login(username=self.user.username, password=USER_PASSWORD)
# creating default organizations roles # creating default organizations roles
...@@ -551,9 +549,8 @@ class CreateCourseRunViewTests(SiteMixin, TestCase): ...@@ -551,9 +549,8 @@ class CreateCourseRunViewTests(SiteMixin, TestCase):
""" """
Verify that user can create a new course run with credit seat. Verify that user can create a new course run with credit seat.
""" """
course = factories.CourseFactory()
organization_extension = factories.OrganizationExtensionFactory() organization_extension = factories.OrganizationExtensionFactory()
course.organizations.add(organization_extension.organization) course = factories.CourseFactory(organizations=[organization_extension.organization])
self.user.groups.add(organization_extension.group) self.user.groups.add(organization_extension.group)
response = self.client.post( response = self.client.post(
...@@ -570,16 +567,13 @@ class CourseRunDetailTests(SiteMixin, TestCase): ...@@ -570,16 +567,13 @@ class CourseRunDetailTests(SiteMixin, TestCase):
def setUp(self): def setUp(self):
super(CourseRunDetailTests, self).setUp() super(CourseRunDetailTests, self).setUp()
self.course = factories.CourseFactory()
self.user = UserFactory() self.user = UserFactory()
self.user.groups.add(Group.objects.get(name=ADMIN_GROUP_NAME)) self.user.groups.add(Group.objects.get(name=ADMIN_GROUP_NAME))
self.client.login(username=self.user.username, password=USER_PASSWORD)
self.course_run = factories.CourseRunFactory(course=self.course)
self.course_run.lms_course_id = 'course-v1:edX+DemoX+Demo_Course'
self.course_run.save()
self.organization_extension = factories.OrganizationExtensionFactory() self.organization_extension = factories.OrganizationExtensionFactory()
self.course.organizations.add(self.organization_extension.organization) self.client.login(username=self.user.username, password=USER_PASSWORD)
self.course_run = factories.CourseRunFactory(course__organizations=[self.organization_extension.organization],
lms_course_id='course-v1:edX+DemoX+Demo_Course')
self.course = self.course_run.course
self._generate_seats([Seat.AUDIT, Seat.HONOR, Seat.VERIFIED, Seat.PROFESSIONAL]) self._generate_seats([Seat.AUDIT, Seat.HONOR, Seat.VERIFIED, Seat.PROFESSIONAL])
self._generate_credit_seat() self._generate_credit_seat()
...@@ -793,7 +787,7 @@ class CourseRunDetailTests(SiteMixin, TestCase): ...@@ -793,7 +787,7 @@ class CourseRunDetailTests(SiteMixin, TestCase):
""" Verify that `PublisherPermissionMixin.get_course` return none """ Verify that `PublisherPermissionMixin.get_course` return none
if `publisher_object` doesn't have `course` attr. if `publisher_object` doesn't have `course` attr.
""" """
non_staff_user, group = create_non_staff_user_and_login(self) # pylint: disable=unused-variable non_staff_user, group = create_non_staff_user_and_login(self) # pylint: disable=unused-variable
page_url = reverse('publisher:publisher_course_run_detail', args=[self.course_run.id]) page_url = reverse('publisher:publisher_course_run_detail', args=[self.course_run.id])
with mock.patch.object(CourseRunDetailView, 'get_object', return_value=non_staff_user): with mock.patch.object(CourseRunDetailView, 'get_object', return_value=non_staff_user):
response = self.client.get(page_url) response = self.client.get(page_url)
...@@ -1750,7 +1744,8 @@ class CourseListViewPaginationTests(PaginationMixin, TestCase): ...@@ -1750,7 +1744,8 @@ class CourseListViewPaginationTests(PaginationMixin, TestCase):
] ]
# create 10 courses with related objects # create 10 courses with related objects
for index in range(10): for index in range(10):
course = factories.CourseFactory(title=self.course_titles[index]) course = factories.CourseFactory(title=self.course_titles[index],
organizations=[OrganizationFactory(key=self.course_organizations[index])])
for _ in range(random.randrange(1, 10)): for _ in range(random.randrange(1, 10)):
factories.CourseRunFactory(course=course) factories.CourseRunFactory(course=course)
...@@ -1758,8 +1753,6 @@ class CourseListViewPaginationTests(PaginationMixin, TestCase): ...@@ -1758,8 +1753,6 @@ class CourseListViewPaginationTests(PaginationMixin, TestCase):
course_state.owner_role_modified = self.course_dates[index] course_state.owner_role_modified = self.course_dates[index]
course_state.save() course_state.save()
course.organizations.add(OrganizationFactory(key=self.course_organizations[index]))
self.courses.append(course) self.courses.append(course)
self.course = self.courses[0] self.course = self.courses[0]
...@@ -1979,13 +1972,11 @@ class CourseDetailViewTests(TestCase): ...@@ -1979,13 +1972,11 @@ class CourseDetailViewTests(TestCase):
def setUp(self): def setUp(self):
super(CourseDetailViewTests, self).setUp() super(CourseDetailViewTests, self).setUp()
self.course = factories.CourseFactory() self.organization_extension = factories.OrganizationExtensionFactory()
self.course = factories.CourseFactory(organizations=[self.organization_extension.organization])
self.user = UserFactory() self.user = UserFactory()
self.client.login(username=self.user.username, password=USER_PASSWORD) self.client.login(username=self.user.username, password=USER_PASSWORD)
self.organization_extension = factories.OrganizationExtensionFactory()
self.course.organizations.add(self.organization_extension.organization)
# Initialize workflow for Course. # Initialize workflow for Course.
self.course_state = factories.CourseStateFactory(course=self.course, owner_role=PublisherUserRole.CourseTeam) self.course_state = factories.CourseStateFactory(course=self.course, owner_role=PublisherUserRole.CourseTeam)
...@@ -2318,15 +2309,7 @@ class CourseDetailViewTests(TestCase): ...@@ -2318,15 +2309,7 @@ class CourseDetailViewTests(TestCase):
self.user.groups.add(self.organization_extension.group) self.user.groups.add(self.organization_extension.group)
assign_perm(OrganizationExtension.VIEW_COURSE, self.organization_extension.group, self.organization_extension) assign_perm(OrganizationExtension.VIEW_COURSE, self.organization_extension.group, self.organization_extension)
response = self.client.get(self.detail_page_url) self.assertGreater(self.course.history.count(), 0)
# Verify that user cannot see history widget if there is only one history object.
self.assertEqual(self.course.history.count(), 1)
self.assertNotContains(response, 'REVISION HISTORY')
# Update course to create multiple history objects.
self.course.title = 'Updated Test Title'
self.course.save()
response = self.client.get(self.detail_page_url) response = self.client.get(self.detail_page_url)
...@@ -2411,14 +2394,12 @@ class CourseEditViewTests(SiteMixin, TestCase): ...@@ -2411,14 +2394,12 @@ class CourseEditViewTests(SiteMixin, TestCase):
def setUp(self): def setUp(self):
super(CourseEditViewTests, self).setUp() super(CourseEditViewTests, self).setUp()
self.course = factories.CourseFactory() self.organization_extension = factories.OrganizationExtensionFactory()
self.course = factories.CourseFactory(organizations=[self.organization_extension.organization])
self.user = UserFactory() self.user = UserFactory()
self.course_team_user = UserFactory() self.course_team_user = UserFactory()
self.client.login(username=self.user.username, password=USER_PASSWORD) self.client.login(username=self.user.username, password=USER_PASSWORD)
self.organization_extension = factories.OrganizationExtensionFactory()
self.course.organizations.add(self.organization_extension.organization)
# Initialize workflow for Course. # Initialize workflow for Course.
CourseState.objects.create(course=self.course, owner_role=PublisherUserRole.CourseTeam) CourseState.objects.create(course=self.course, owner_role=PublisherUserRole.CourseTeam)
...@@ -2465,10 +2446,6 @@ class CourseEditViewTests(SiteMixin, TestCase): ...@@ -2465,10 +2446,6 @@ class CourseEditViewTests(SiteMixin, TestCase):
""" """
Verify that publisher admin can update an existing course. Verify that publisher admin can update an existing course.
""" """
# only 1 history object exists for a course.
self.assertEqual(self.course.history.all().count(), 1)
self.user.groups.add(Group.objects.get(name=ADMIN_GROUP_NAME)) self.user.groups.add(Group.objects.get(name=ADMIN_GROUP_NAME))
post_data = self._post_data(self.organization_extension) post_data = self._post_data(self.organization_extension)
...@@ -2494,9 +2471,6 @@ class CourseEditViewTests(SiteMixin, TestCase): ...@@ -2494,9 +2471,6 @@ class CourseEditViewTests(SiteMixin, TestCase):
self.assertEqual(course.changed_by, self.user) self.assertEqual(course.changed_by, self.user)
self.assertEqual(course.short_description, 'Testing description') self.assertEqual(course.short_description, 'Testing description')
# After updating 2 history object exists for a course.
self.assertEqual(self.course.history.all().count(), 2)
def test_update_course_with_non_internal_user(self): def test_update_course_with_non_internal_user(self):
""" """
Verify that non-internal user cannot update the course. Verify that non-internal user cannot update the course.
...@@ -2530,7 +2504,6 @@ class CourseEditViewTests(SiteMixin, TestCase): ...@@ -2530,7 +2504,6 @@ class CourseEditViewTests(SiteMixin, TestCase):
) )
self.assertEqual(self.course.course_team_admin, self.course_team_user) self.assertEqual(self.course.course_team_admin, self.course_team_user)
self.assertEqual(self.course.history.all().count(), 2)
def test_update_course_organization(self): def test_update_course_organization(self):
""" """
...@@ -2555,7 +2528,6 @@ class CourseEditViewTests(SiteMixin, TestCase): ...@@ -2555,7 +2528,6 @@ class CourseEditViewTests(SiteMixin, TestCase):
) )
self.assertEqual(self.course.organizations.first(), organization_extension.organization) self.assertEqual(self.course.organizations.first(), organization_extension.organization)
self.assertEqual(self.course.history.all().count(), 2)
def _assign_permissions(self, organization_extension): def _assign_permissions(self, organization_extension):
""" """
...@@ -2871,11 +2843,10 @@ class CourseRunEditViewTests(SiteMixin, TestCase): ...@@ -2871,11 +2843,10 @@ class CourseRunEditViewTests(SiteMixin, TestCase):
self.group_project_coordinator = Group.objects.get(name=PROJECT_COORDINATOR_GROUP_NAME) self.group_project_coordinator = Group.objects.get(name=PROJECT_COORDINATOR_GROUP_NAME)
self.course = factories.CourseFactory() self.course_run = factories.CourseRunFactory(course__organizations=[self.organization_extension.organization])
self.course_run = factories.CourseRunFactory(course=self.course) self.course = self.course_run.course
self.seat = factories.SeatFactory(course_run=self.course_run, type=Seat.VERIFIED, price=2) self.seat = factories.SeatFactory(course_run=self.course_run, type=Seat.VERIFIED, price=2)
self.course.organizations.add(self.organization_extension.organization)
self.client.login(username=self.user.username, password=USER_PASSWORD) self.client.login(username=self.user.username, password=USER_PASSWORD)
current_datetime = datetime.now(timezone('US/Central')) current_datetime = datetime.now(timezone('US/Central'))
self.start_date_time = (current_datetime + timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S') self.start_date_time = (current_datetime + timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')
...@@ -3445,7 +3416,8 @@ class CreateRunFromDashboardViewTests(SiteMixin, TestCase): ...@@ -3445,7 +3416,8 @@ class CreateRunFromDashboardViewTests(SiteMixin, TestCase):
def setUp(self): def setUp(self):
super(CreateRunFromDashboardViewTests, self).setUp() super(CreateRunFromDashboardViewTests, self).setUp()
self.user = UserFactory() self.user = UserFactory()
self.course = factories.CourseFactory() self.organization_extension = factories.OrganizationExtensionFactory()
self.course = factories.CourseFactory(organizations=[self.organization_extension.organization])
factories.CourseStateFactory(course=self.course) factories.CourseStateFactory(course=self.course)
factories.CourseUserRoleFactory.create(course=self.course, role=PublisherUserRole.CourseTeam, user=self.user) factories.CourseUserRoleFactory.create(course=self.course, role=PublisherUserRole.CourseTeam, user=self.user)
factories.CourseUserRoleFactory.create(course=self.course, role=PublisherUserRole.Publisher, user=UserFactory()) factories.CourseUserRoleFactory.create(course=self.course, role=PublisherUserRole.Publisher, user=UserFactory())
...@@ -3456,8 +3428,6 @@ class CreateRunFromDashboardViewTests(SiteMixin, TestCase): ...@@ -3456,8 +3428,6 @@ class CreateRunFromDashboardViewTests(SiteMixin, TestCase):
course=self.course, role=PublisherUserRole.MarketingReviewer, user=UserFactory() course=self.course, role=PublisherUserRole.MarketingReviewer, user=UserFactory()
) )
self.organization_extension = factories.OrganizationExtensionFactory()
self.course.organizations.add(self.organization_extension.organization)
self.user.groups.add(self.organization_extension.group) self.user.groups.add(self.organization_extension.group)
assign_perm( assign_perm(
......
...@@ -21,12 +21,9 @@ class CourseRunWrapperTests(TestCase): ...@@ -21,12 +21,9 @@ class CourseRunWrapperTests(TestCase):
def setUp(self): def setUp(self):
super(CourseRunWrapperTests, self).setUp() super(CourseRunWrapperTests, self).setUp()
self.course_run = factories.CourseRunFactory()
self.course = self.course_run.course
organization = OrganizationFactory() organization = OrganizationFactory()
self.course_run = factories.CourseRunFactory(course__organizations=[organization])
self.course.organizations.add(organization) self.course = self.course_run.course
self.course.save()
self.wrapped_course_run = CourseRunWrapper(self.course_run) self.wrapped_course_run = CourseRunWrapper(self.course_run)
...@@ -72,13 +69,8 @@ class CourseRunWrapperTests(TestCase): ...@@ -72,13 +69,8 @@ class CourseRunWrapperTests(TestCase):
def test_organization_key(self): def test_organization_key(self):
""" Verify that the wrapper return the organization key. """ """ Verify that the wrapper return the organization key. """
course = factories.CourseFactory()
course_run = factories.CourseRunFactory(course=course)
wrapped_course_run = CourseRunWrapper(course_run)
self.assertEqual(wrapped_course_run.organization_key, None)
organization = OrganizationFactory() organization = OrganizationFactory()
course.organizations.add(organization) course_run = factories.CourseRunFactory(course__organizations=[organization])
wrapped_course_run = CourseRunWrapper(course_run) wrapped_course_run = CourseRunWrapper(course_run)
self.assertEqual(wrapped_course_run.organization_key, organization.key) self.assertEqual(wrapped_course_run.organization_key, organization.key)
...@@ -110,13 +102,8 @@ class CourseRunWrapperTests(TestCase): ...@@ -110,13 +102,8 @@ class CourseRunWrapperTests(TestCase):
def test_organization_name(self): def test_organization_name(self):
""" Verify that the wrapper return the organization name. """ """ Verify that the wrapper return the organization name. """
course = factories.CourseFactory()
course_run = factories.CourseRunFactory(course=course)
wrapped_course_run = CourseRunWrapper(course_run)
self.assertEqual(wrapped_course_run.organization_name, None)
organization = OrganizationFactory() organization = OrganizationFactory()
course.organizations.add(organization) course_run = factories.CourseRunFactory(course__organizations=[organization])
wrapped_course_run = CourseRunWrapper(course_run) wrapped_course_run = CourseRunWrapper(course_run)
self.assertEqual(wrapped_course_run.organization_name, organization.name) self.assertEqual(wrapped_course_run.organization_name, organization.name)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment