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

@@ -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)