Commit b4e4b77e by Clinton Blackburn

Test Cleanup

- Updated publication tests
- Updated partner shortcut tests

ECOM-2583
parent 4549b81b
from django.contrib.sites.models import Site
from django.test import TestCase, RequestFactory
from django.test import TestCase
from mock import Mock
from ecommerce.core.models import SiteConfiguration
from ecommerce.extensions.partner.shortcuts import get_partner_for_site
from ecommerce.tests.mixins import PartnerMixin
from ecommerce.tests.mixins import SiteMixin
class ShortcutsTest(PartnerMixin, TestCase):
def setUp(self):
self.partner = self.create_partner('dummy')
self.site, __ = Site.objects.get_or_create(domain='example.com')
SiteConfiguration.objects.create(
site=self.site,
partner=self.partner,
lms_url_root='https://courses.stage.edx.org',
theme_scss_path='/css/path/',
payment_processors='paypal'
)
def test_partner_for_site(self):
request = RequestFactory().get('/')
partner = get_partner_for_site(request)
self.assertEqual('dummy', partner.short_code)
class ShortcutsTest(SiteMixin, TestCase):
def test_get_partner_for_site(self):
""" Verify the function returns the Partner associated with the request's Site. """
request = Mock()
request.site = self.site
self.assertEqual(get_partner_for_site(request), self.partner)
# -*- coding: utf-8 -*-
"""Broadly-useful mixins for use in automated tests."""
import json
from decimal import Decimal as D
from decimal import Decimal
import jwt
from django.conf import settings
from django.contrib.auth import get_user_model
from django.contrib.sites.models import Site
from django.core.cache import cache
from django.core.urlresolvers import reverse
import jwt
from mock import patch
from oscar.test import factories
from oscar.core.loading import get_model, get_class
from oscar.test import factories
from ecommerce.core.models import SiteConfiguration
from ecommerce.courses.utils import mode_for_seat
from ecommerce.extensions.api.constants import APIConstants as AC
from ecommerce.extensions.fulfillment.signals import SHIPPING_EVENT_NAME
Basket = get_model('basket', 'Basket')
Selector = get_class('partner.strategy', 'Selector')
ShippingEventType = get_model('order', 'ShippingEventType')
......@@ -46,6 +47,7 @@ class UserMixin(object):
class ThrottlingMixin(object):
"""Provides utility methods for test cases validating the behavior of rate-limited endpoints."""
def setUp(self):
super(ThrottlingMixin, self).setUp()
......@@ -94,7 +96,7 @@ class BasketCreationMixin(JwtMixin):
parent=self.base_product,
title=u'𝑪𝒂𝒓𝒅𝒃𝒐𝒂𝒓𝒅 𝑪𝒖𝒕𝒐𝒖𝒕',
stockrecords__partner_sku=self.FREE_SKU,
stockrecords__price_excl_tax=D('0.00'),
stockrecords__price_excl_tax=Decimal('0.00'),
)
def create_basket(self, skus=None, checkout=None, payment_processor_name=None, auth=True, token=None):
......@@ -224,9 +226,33 @@ class BusinessIntelligenceMixin(object):
class PartnerMixin(object):
"""Provides utility methods for creating partners in test cases."""
def create_partner(self, name):
"""Create Partner object and return it"""
# For testing we are making 'short_code' parameter value same as name.
# Please make sure that 'name' is not longer than 8 characters.
partner, __ = Partner.objects.get_or_create(short_code=name, name=name)
return partner
class SiteMixin(object):
def setUp(self):
super(SiteMixin, self).setUp()
# Set the domain used for all test requests
domain = 'testserver.fake'
self.client = self.client_class(SERVER_NAME=domain)
# Create and configure the default site
Site.objects.all().delete()
self.site = Site.objects.create(id=1, domain=domain)
self.partner, _created = Partner.objects.get_or_create(short_code='edx', name='edx')
SiteConfiguration.objects.create(
site=self.site,
partner=self.partner,
lms_url_root='https://lms.{}'.format(domain),
theme_scss_path='/css/path/',
payment_processors='fake_processor'
)
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