Upgrade factory_boy

TNL-3179
This commit is contained in:
muhammad-ammar
2015-08-31 13:52:20 +05:00
parent 0a2cfbe31c
commit 6a5ce5d544
21 changed files with 113 additions and 57 deletions

View File

@@ -6,7 +6,8 @@ from opaque_keys.edx.locations import SlashSeparatedCourseKey
# Factories are self documenting
# pylint: disable=missing-docstring
class CourseModeFactory(DjangoModelFactory):
FACTORY_FOR = CourseMode
class Meta(object):
model = CourseMode
course_id = SlashSeparatedCourseKey('MITx', '999', 'Robot_Super_Course')
mode_slug = 'audit'

View File

@@ -17,14 +17,16 @@ from opaque_keys.edx.locations import SlashSeparatedCourseKey
class GroupFactory(DjangoModelFactory):
FACTORY_FOR = Group
FACTORY_DJANGO_GET_OR_CREATE = ('name', )
class Meta(object):
model = Group
django_get_or_create = ('name', )
name = factory.Sequence(u'group{0}'.format)
class UserStandingFactory(DjangoModelFactory):
FACTORY_FOR = UserStanding
class Meta(object):
model = UserStanding
user = None
account_status = None
@@ -32,8 +34,9 @@ class UserStandingFactory(DjangoModelFactory):
class UserProfileFactory(DjangoModelFactory):
FACTORY_FOR = UserProfile
FACTORY_DJANGO_GET_OR_CREATE = ('user', )
class Meta(object):
model = UserProfile
django_get_or_create = ('user', )
user = None
name = factory.LazyAttribute(u'{0.user.first_name} {0.user.last_name}'.format)
@@ -45,7 +48,8 @@ class UserProfileFactory(DjangoModelFactory):
class CourseModeFactory(DjangoModelFactory):
FACTORY_FOR = CourseMode
class Meta(object):
model = CourseMode
course_id = None
mode_display_name = u'Honor Code',
@@ -57,15 +61,17 @@ class CourseModeFactory(DjangoModelFactory):
class RegistrationFactory(DjangoModelFactory):
FACTORY_FOR = Registration
class Meta(object):
model = Registration
user = None
activation_key = uuid4().hex.decode('ascii')
class UserFactory(DjangoModelFactory):
FACTORY_FOR = User
FACTORY_DJANGO_GET_OR_CREATE = ('email', 'username')
class Meta(object):
model = User
django_get_or_create = ('email', 'username')
username = factory.Sequence(u'robot{0}'.format)
email = factory.Sequence(u'robot+test+{0}@edx.org'.format)
@@ -101,7 +107,8 @@ class UserFactory(DjangoModelFactory):
class AnonymousUserFactory(factory.Factory):
FACTORY_FOR = AnonymousUser
class Meta(object):
model = AnonymousUser
class AdminFactory(UserFactory):
@@ -109,14 +116,16 @@ class AdminFactory(UserFactory):
class CourseEnrollmentFactory(DjangoModelFactory):
FACTORY_FOR = CourseEnrollment
class Meta(object):
model = CourseEnrollment
user = factory.SubFactory(UserFactory)
course_id = SlashSeparatedCourseKey('edX', 'toy', '2012_Fall')
class CourseAccessRoleFactory(DjangoModelFactory):
FACTORY_FOR = CourseAccessRole
class Meta(object):
model = CourseAccessRole
user = factory.SubFactory(UserFactory)
course_id = SlashSeparatedCourseKey('edX', 'toy', '2012_Fall')
@@ -124,7 +133,8 @@ class CourseAccessRoleFactory(DjangoModelFactory):
class CourseEnrollmentAllowedFactory(DjangoModelFactory):
FACTORY_FOR = CourseEnrollmentAllowed
class Meta(object):
model = CourseEnrollmentAllowed
email = 'test@edx.org'
course_id = SlashSeparatedCourseKey('edX', 'toy', '2012_Fall')
@@ -137,7 +147,8 @@ class PendingEmailChangeFactory(DjangoModelFactory):
new_email: sequence of new+email+{}@edx.org
activation_key: sequence of integers, padded to 30 characters
"""
FACTORY_FOR = PendingEmailChange
class Meta(object):
model = PendingEmailChange
user = factory.SubFactory(UserFactory)
new_email = factory.Sequence(u'new+email+{0}@edx.org'.format)

View File

@@ -8,6 +8,7 @@ from django.test import TestCase
from django.test.client import Client
from django.test.utils import override_settings
from django.conf import settings
from django.contrib.auth.models import User
from django.core.cache import cache
from django.core.urlresolvers import reverse, NoReverseMatch
from django.http import HttpResponseBadRequest, HttpResponse
@@ -252,7 +253,7 @@ class LoginTest(TestCase):
self._assert_response(response, success=True)
# Reload the user from the database
self.user = UserFactory.FACTORY_FOR.objects.get(pk=self.user.pk)
self.user = User.objects.get(pk=self.user.pk)
self.assertEqual(self.user.profile.get_meta()['session_id'], client1.session.session_key)

View File

@@ -71,10 +71,11 @@ class XModuleFactory(Factory):
Factory for XModules
"""
# We have to give a Factory a FACTORY_FOR.
# We have to give a model for Factory.
# However, the class that we create is actually determined by the category
# specified in the factory
FACTORY_FOR = Dummy
class Meta(object): # pylint: disable=missing-docstring
model = Dummy
@lazy_attribute
def modulestore(self):

View File

@@ -104,7 +104,8 @@ class ModuleSystemFactory(Factory):
performed by :func:`xmodule.tests.get_test_system`, so
arguments for that function are valid factory attributes.
"""
FACTORY_FOR = ModuleSystem
class Meta(object): # pylint: disable=missing-docstring
model = ModuleSystem
@classmethod
def _build(cls, target_class, *args, **kwargs): # pylint: disable=unused-argument
@@ -119,7 +120,8 @@ class DescriptorSystemFactory(Factory):
performed by :func:`xmodule.tests.get_test_descriptor_system`, so
arguments for that function are valid factory attributes.
"""
FACTORY_FOR = DescriptorSystem
class Meta(object): # pylint: disable=missing-docstring
model = DescriptorSystem
@classmethod
def _build(cls, target_class, *args, **kwargs): # pylint: disable=unused-argument
@@ -190,7 +192,8 @@ class LeafDescriptorFactory(Factory):
"""
# pylint: disable=missing-docstring
FACTORY_FOR = XModuleDescriptor
class Meta(object):
model = XModuleDescriptor
runtime = SubFactory(DescriptorSystemFactory)
url_name = LazyAttributeSequence('{.block_type}_{}'.format)

View File

@@ -64,7 +64,8 @@ class XmlImportFactory(Factory):
Factory for generating XmlImportData's, which can hold all the data needed
to run an XModule XML import
"""
FACTORY_FOR = XmlImportData
class Meta(object): # pylint: disable=missing-docstring
model = XmlImportData
filesystem = MemoryFS()
xblock_mixins = (InheritanceMixin, XModuleMixin)

View File

@@ -12,7 +12,8 @@ from . import COMMENTS_STUB_URL
class ContentFactory(factory.Factory):
FACTORY_FOR = dict
class Meta(object): # pylint: disable=missing-docstring
model = dict
id = None
user_id = "1234"
username = "dummy-username"
@@ -63,7 +64,8 @@ class Response(Comment):
class SearchResult(factory.Factory):
FACTORY_FOR = dict
class Meta(object): # pylint: disable=missing-docstring
model = dict
discussion_data = []
annotated_content_info = {}
num_pages = 1

View File

@@ -10,7 +10,8 @@ from . import EDXNOTES_STUB_URL
class Range(factory.Factory):
FACTORY_FOR = dict
class Meta(object): # pylint: disable=missing-docstring
model = dict
start = "/div[1]/p[1]"
end = "/div[1]/p[1]"
startOffset = 0
@@ -18,7 +19,8 @@ class Range(factory.Factory):
class Note(factory.Factory):
FACTORY_FOR = dict
class Meta(object): # pylint: disable=missing-docstring
model = dict
user = "dummy-user"
usage_id = "dummy-usage-id"
course_id = "dummy-course-id"