Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
be76f731
Commit
be76f731
authored
Apr 18, 2013
by
Jay Zoldak
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Consolidate and upgrade factories
parent
29ce700d
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
92 additions
and
125 deletions
+92
-125
common/djangoapps/student/tests/factories.py
+1
-3
lms/djangoapps/courseware/tests/factories.py
+56
-33
lms/djangoapps/courseware/tests/test_model_data.py
+14
-53
lms/djangoapps/django_comment_client/tests/test_utils.py
+4
-28
lms/djangoapps/licenses/tests.py
+17
-8
No files found.
common/djangoapps/student/tests/factories.py
View file @
be76f731
...
...
@@ -46,9 +46,7 @@ class UserFactory(DjangoModelFactory):
date_joined
=
datetime
(
2011
,
1
,
1
)
class
AdminFactory
(
Factory
):
FACTORY_FOR
=
User
class
AdminFactory
(
UserFactory
):
is_staff
=
True
...
...
lms/djangoapps/courseware/tests/factories.py
View file @
be76f731
import
factory
from
student.models
import
(
User
,
UserProfile
,
Registration
,
CourseEnrollmentAllowed
)
from
courseware.models
import
StudentModule
from
django.contrib.auth.models
import
Group
from
datetime
import
datetime
import
uuid
import
json
from
functools
import
partial
from
factory
import
DjangoModelFactory
,
SubFactory
from
student.tests.factories
import
UserFactory
as
StudentUserFactory
from
student.tests.factories
import
GroupFactory
as
StudentGroupFactory
from
student.tests.factories
import
UserProfileFactory
as
StudentUserProfileFactory
from
student.tests.factories
import
CourseEnrollmentAllowedFactory
as
StudentCourseEnrollmentAllowedFactory
from
student.tests.factories
import
RegistrationFactory
as
StudentRegistrationFactory
from
courseware.models
import
StudentModule
,
XModuleContentField
,
XModuleSettingsField
from
courseware.models
import
XModuleStudentInfoField
,
XModuleStudentPrefsField
class
UserProfileFactory
(
factory
.
Factory
):
FACTORY_FOR
=
UserProfile
from
xmodule.modulestore
import
Location
user
=
None
name
=
'Robot Studio'
courseware
=
'course.xml'
location
=
partial
(
Location
,
'i4x'
,
'edX'
,
'test_course'
,
'problem'
)
class
RegistrationFactory
(
factory
.
Factory
):
FACTORY_FOR
=
Registration
class
UserProfileFactory
(
StudentUserProfileFactory
):
name
=
'Robot Studio'
courseware
=
'course.xml'
user
=
None
activation_key
=
uuid
.
uuid4
()
.
hex
class
RegistrationFactory
(
StudentRegistrationFactory
):
pass
class
UserFactory
(
factory
.
Factory
):
FACTORY_FOR
=
User
username
=
'robot'
class
UserFactory
(
StudentUserFactory
):
email
=
'robot@edx.org'
password
=
'test'
first_name
=
'Robot'
last_name
=
'Tester'
is_staff
=
False
is_active
=
True
is_superuser
=
False
last_login
=
datetime
.
now
()
date_joined
=
datetime
.
now
()
class
GroupFactory
(
factory
.
Factory
):
FACTORY_FOR
=
Group
class
GroupFactory
(
StudentGroupFactory
):
name
=
'test_group'
class
CourseEnrollmentAllowedFactory
(
factory
.
Factory
):
FACTORY_FOR
=
CourseEnrollmentAllowed
class
CourseEnrollmentAllowedFactory
(
StudentCourseEnrollmentAllowed
Factory
):
pass
email
=
'test@edx.org'
course_id
=
'edX/test/2012_Fall'
class
StudentModuleFactory
(
factory
.
Factory
):
class
StudentModuleFactory
(
DjangoModelFactory
):
FACTORY_FOR
=
StudentModule
module_type
=
"problem"
student
=
factory
.
SubFactory
(
UserFactory
)
student
=
SubFactory
(
UserFactory
)
course_id
=
"MITx/999/Robot_Super_Course"
state
=
None
grade
=
None
max_grade
=
None
done
=
'na'
class
ContentFactory
(
DjangoModelFactory
):
FACTORY_FOR
=
XModuleContentField
field_name
=
'existing_field'
value
=
json
.
dumps
(
'old_value'
)
definition_id
=
location
(
'def_id'
)
.
url
()
class
SettingsFactory
(
DjangoModelFactory
):
FACTORY_FOR
=
XModuleSettingsField
field_name
=
'existing_field'
value
=
json
.
dumps
(
'old_value'
)
usage_id
=
'
%
s-
%
s'
%
(
'edX/test_course/test'
,
location
(
'def_id'
)
.
url
())
class
StudentPrefsFactory
(
DjangoModelFactory
):
FACTORY_FOR
=
XModuleStudentPrefsField
field_name
=
'existing_field'
value
=
json
.
dumps
(
'old_value'
)
student
=
SubFactory
(
UserFactory
)
module_type
=
'problem'
class
StudentInfoFactory
(
DjangoModelFactory
):
FACTORY_FOR
=
XModuleStudentInfoField
field_name
=
'existing_field'
value
=
json
.
dumps
(
'old_value'
)
student
=
SubFactory
(
UserFactory
)
lms/djangoapps/courseware/tests/test_model_data.py
View file @
be76f731
import
factory
import
json
from
mock
import
Mock
from
django.contrib.auth.models
import
User
from
functools
import
partial
from
courseware.model_data
import
LmsKeyValueStore
,
InvalidWriteError
,
InvalidScopeError
,
ModelDataCache
from
courseware.models
import
StudentModule
,
XModuleContentField
,
XModuleSettingsField
,
XModuleStudentInfoField
,
XModuleStudentPrefsField
from
courseware.model_data
import
LmsKeyValueStore
,
InvalidWriteError
from
courseware.model_data
import
InvalidScopeError
,
ModelDataCache
from
courseware.models
import
StudentModule
,
XModuleContentField
,
XModuleSettingsField
from
courseware.models
import
XModuleStudentInfoField
,
XModuleStudentPrefsField
from
student.tests.factories
import
UserFactory
from
courseware.tests.factories
import
StudentModuleFactory
as
cmfStudentModuleFactory
from
courseware.tests.factories
import
ContentFactory
,
SettingsFactory
from
courseware.tests.factories
import
StudentPrefsFactory
,
StudentInfoFactory
from
xblock.core
import
Scope
,
BlockScope
from
xmodule.modulestore
import
Location
from
django.test
import
TestCase
...
...
@@ -19,6 +23,7 @@ def mock_field(scope, name):
field
.
name
=
name
return
field
def
mock_descriptor
(
fields
=
[],
lms_fields
=
[]):
descriptor
=
Mock
()
descriptor
.
stores_state
=
True
...
...
@@ -37,53 +42,9 @@ prefs_key = partial(LmsKeyValueStore.Key, Scope.preferences, 'user', 'problem')
user_info_key
=
partial
(
LmsKeyValueStore
.
Key
,
Scope
.
user_info
,
'user'
,
None
)
class
UserFactory
(
factory
.
Factory
):
FACTORY_FOR
=
User
username
=
'user'
class
StudentModuleFactory
(
factory
.
Factory
):
FACTORY_FOR
=
StudentModule
module_type
=
'problem'
class
StudentModuleFactory
(
cmfStudentModuleFactory
):
module_state_key
=
location
(
'def_id'
)
.
url
()
student
=
factory
.
SubFactory
(
UserFactory
)
course_id
=
course_id
state
=
None
class
ContentFactory
(
factory
.
Factory
):
FACTORY_FOR
=
XModuleContentField
field_name
=
'existing_field'
value
=
json
.
dumps
(
'old_value'
)
definition_id
=
location
(
'def_id'
)
.
url
()
class
SettingsFactory
(
factory
.
Factory
):
FACTORY_FOR
=
XModuleSettingsField
field_name
=
'existing_field'
value
=
json
.
dumps
(
'old_value'
)
usage_id
=
'
%
s-
%
s'
%
(
course_id
,
location
(
'def_id'
)
.
url
())
class
StudentPrefsFactory
(
factory
.
Factory
):
FACTORY_FOR
=
XModuleStudentPrefsField
field_name
=
'existing_field'
value
=
json
.
dumps
(
'old_value'
)
student
=
factory
.
SubFactory
(
UserFactory
)
module_type
=
'problem'
class
StudentInfoFactory
(
factory
.
Factory
):
FACTORY_FOR
=
XModuleStudentInfoField
field_name
=
'existing_field'
value
=
json
.
dumps
(
'old_value'
)
student
=
factory
.
SubFactory
(
UserFactory
)
class
TestDescriptorFallback
(
TestCase
):
...
...
@@ -114,7 +75,7 @@ class TestDescriptorFallback(TestCase):
class
TestInvalidScopes
(
TestCase
):
def
setUp
(
self
):
self
.
desc_md
=
{}
self
.
user
=
UserFactory
.
create
()
self
.
user
=
UserFactory
.
create
(
username
=
'user'
)
self
.
mdc
=
ModelDataCache
([
mock_descriptor
([
mock_field
(
Scope
.
user_state
,
'a_field'
)])],
course_id
,
self
.
user
)
self
.
kvs
=
LmsKeyValueStore
(
self
.
desc_md
,
self
.
mdc
)
...
...
@@ -180,7 +141,7 @@ class TestStudentModuleStorage(TestCase):
class
TestMissingStudentModule
(
TestCase
):
def
setUp
(
self
):
self
.
user
=
UserFactory
.
create
()
self
.
user
=
UserFactory
.
create
(
username
=
'user'
)
self
.
desc_md
=
{}
self
.
mdc
=
ModelDataCache
([
mock_descriptor
()],
course_id
,
self
.
user
)
self
.
kvs
=
LmsKeyValueStore
(
self
.
desc_md
,
self
.
mdc
)
...
...
lms/djangoapps/django_comment_client/tests/test_utils.py
View file @
be76f731
import
string
import
random
import
collections
from
django.test
import
TestCase
from
factory
import
DjangoModelFactory
from
student.tests.factories
import
UserFactory
,
CourseEnrollmentFactory
import
factory
from
django.contrib.auth.models
import
User
from
student.models
import
UserProfile
,
CourseEnrollment
from
django_comment_client.models
import
Role
,
Permission
import
django_comment_client.models
as
models
import
django_comment_client.utils
as
utils
import
xmodule.modulestore.django
as
django
class
UserFactory
(
factory
.
Factory
):
FACTORY_FOR
=
User
username
=
'robot'
password
=
'123456'
email
=
'robot@edx.org'
is_active
=
True
is_staff
=
False
class
CourseEnrollmentFactory
(
factory
.
Factory
):
FACTORY_FOR
=
CourseEnrollment
user
=
factory
.
SubFactory
(
UserFactory
)
course_id
=
'edX/toy/2012_Fall'
class
RoleFactory
(
factory
.
Factory
):
class
RoleFactory
(
DjangoModel
Factory
):
FACTORY_FOR
=
Role
name
=
'Student'
course_id
=
'edX/toy/2012_Fall'
class
PermissionFactory
(
factory
.
Factory
):
class
PermissionFactory
(
DjangoModel
Factory
):
FACTORY_FOR
=
Permission
name
=
'create_comment'
...
...
lms/djangoapps/licenses/tests.py
View file @
be76f731
...
...
@@ -5,15 +5,19 @@ import json
from
uuid
import
uuid4
from
random
import
shuffle
from
tempfile
import
NamedTemporaryFile
from
factory
import
Factory
,
SubFactory
from
factory
import
DjangoModel
Factory
,
SubFactory
from
django.test
import
TestCase
from
django.test.client
import
Client
from
django.test.utils
import
override_settings
from
django.core.management
import
call_command
from
django.core.urlresolvers
import
reverse
from
nose.tools
import
assert_true
from
courseware.tests.tests
import
TEST_DATA_MONGO_MODULESTORE
from
licenses.models
import
CourseSoftware
,
UserLicense
from
courseware.tests.tests
import
LoginEnrollmentTestCase
,
get_user
from
student.tests.factories
import
UserFactory
from
xmodule.modulestore.tests.factories
import
CourseFactory
from
xmodule.modulestore.tests.django_utils
import
ModuleStoreTestCase
...
...
@@ -27,7 +31,7 @@ SERIAL_1 = '123456abcde'
log
=
logging
.
getLogger
(
__name__
)
class
CourseSoftwareFactory
(
Factory
):
class
CourseSoftwareFactory
(
DjangoModel
Factory
):
'''Factory for generating CourseSoftware objects in database'''
FACTORY_FOR
=
CourseSoftware
...
...
@@ -37,7 +41,7 @@ class CourseSoftwareFactory(Factory):
course_id
=
COURSE_1
class
UserLicenseFactory
(
Factory
):
class
UserLicenseFactory
(
DjangoModel
Factory
):
'''
Factory for generating UserLicense objects in database
...
...
@@ -46,19 +50,24 @@ class UserLicenseFactory(Factory):
'''
FACTORY_FOR
=
UserLicense
user
=
None
software
=
SubFactory
(
CourseSoftwareFactory
)
serial
=
SERIAL_1
class
LicenseTestCase
(
LoginEnrollment
TestCase
):
class
LicenseTestCase
(
TestCase
):
'''Tests for licenses.views'''
def
setUp
(
self
):
'''creates a user and logs in'''
self
.
setup_viewtest_user
()
# self.setup_viewtest_user()
self
.
user
=
UserFactory
(
username
=
'test'
,
email
=
'test@edx.org'
,
password
=
'test_password'
)
self
.
client
=
Client
()
assert_true
(
self
.
client
.
login
(
username
=
'test'
,
password
=
'test_password'
))
self
.
software
=
CourseSoftwareFactory
()
def
test_get_license
(
self
):
UserLicenseFactory
(
user
=
get_user
(
self
.
viewtest_email
)
,
software
=
self
.
software
)
UserLicenseFactory
(
user
=
self
.
user
,
software
=
self
.
software
)
response
=
self
.
client
.
post
(
reverse
(
'user_software_license'
),
{
'software'
:
SOFTWARE_1
,
'generate'
:
'false'
},
HTTP_X_REQUESTED_WITH
=
'XMLHttpRequest'
,
...
...
@@ -125,7 +134,7 @@ class LicenseTestCase(LoginEnrollmentTestCase):
self
.
assertEqual
(
404
,
response
.
status_code
)
def
test_get_license_without_login
(
self
):
self
.
logout
()
self
.
client
.
logout
()
response
=
self
.
client
.
post
(
reverse
(
'user_software_license'
),
{
'software'
:
SOFTWARE_1
,
'generate'
:
'false'
},
HTTP_X_REQUESTED_WITH
=
'XMLHttpRequest'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment