Commit d4f63292 by Zia Fazal Committed by Jonathan Piacenti

changes after feedback from matt on 4/1

parent ab0591d6
......@@ -162,4 +162,10 @@ class SecureListAPIView(PermissionMixin,
"""
Inherited from ListAPIView
"""
pass
# if page_size parameter in request is zero don't paginate results
def get_paginate_by(self):
page_size = self.request.QUERY_PARAMS.get('page_size')
if page_size and int(page_size) == 0:
return None
else:
return super(SecureListAPIView, self).get_paginate_by()
......@@ -135,7 +135,7 @@ class GenerateGradebookEntriesTests(ModuleStoreTestCase):
@patch.dict(settings.FEATURES, {
'ALLOW_STUDENT_STATE_UPDATES_ON_CLOSED_COURSE': False,
'SIGNAL_ON_SCORE_CHANGED': True
'SIGNAL_ON_SCORE_CHANGED': False
})
def test_generate_gradebook_entries(self):
"""
......
__author__ = 'zia'
"""
One-time data migration script -- should not need to run it again
"""
import logging
from django.core.management.base import BaseCommand
from django.db import connection, transaction
from organizations.models import Organization
log = logging.getLogger(__name__)
class Command(BaseCommand):
"""
Moves existing organizations data from api_manager app to organizations app
"""
help = "Command to move existing organizations from api_manager app to organizations app"
def handle(self, *args, **options):
existing_entries = Organization.objects.all().count()
if existing_entries == 0:
try:
cursor = connection.cursor()
cursor.execute('INSERT INTO organizations_organization SELECT * from api_manager_organization')
log_msg = 'organizations entries moved from api_manager to organizations app'
self.print_message(log_msg)
cursor.execute('INSERT INTO organizations_organization_workgroups '
'SELECT * from api_manager_organization_workgroups')
log_msg = 'organization_workgroups entries moved from api_manager to organizations app'
self.print_message(log_msg)
cursor.execute('INSERT INTO organizations_organization_users '
'SELECT * from api_manager_organization_users')
log_msg = 'organization_users entries moved from api_manager to organizations app'
self.print_message(log_msg)
cursor.execute('INSERT INTO organizations_organization_groups '
'SELECT * from api_manager_organization_groups')
log_msg = 'organization_groups entries moved from api_manager to organizations app'
self.print_message(log_msg)
transaction.commit()
except Exception as e:
log_msg = e.message
self.print_message(log_msg)
else:
log_msg = 'oroganizations_organization is not empty. You might have already filled it.'
self.print_message(log_msg)
def print_message(self, msg):
print msg
log.info(msg)
import mock
from django.test import TestCase
from django.db import connection, transaction, models
from organizations.management.commands import move_organizations_entries
from organizations.models import Organization
from student.tests.factories import UserFactory, GroupFactory
from django.contrib.auth.models import Group, User
from projects.models import Workgroup, Project
from model_utils.models import TimeStampedModel
from south.db import db
class MoveOrganizationEntriesTests(TestCase):
"""
Test suite for organization table data copy from api_manager to organizations
"""
def setUp(self):
# Create tables and add data
user1 = UserFactory()
user2 = UserFactory()
group1 = GroupFactory()
group2 = GroupFactory()
proj = Project()
proj.course_id = 'slashes:test+cs234+ct323'
proj.content_id = 'location:test+cs234+ct323+chapter+b145cc8196734885ac8835b841d486ee'
proj.save()
workgroup = Workgroup()
workgroup.name = 'Test workgroup'
workgroup.project = proj
workgroup.save()
for i in xrange(1, 9):
org = Organization()
org.name = 'test_and_company {}'.format(i)
org.display_name = 'test display name {}'.format(i)
org.contact_name = 'test contact name {}'.format(i)
org.contact_email = 'test{}@test.com'.format(i)
org.save()
org.users.add(user1, user2)
org.groups.add(group1, group2)
org.workgroups.add(workgroup)
def test_organization_entries_copy(self):
"""
Test organization entries copy from api_manager app to organizations app
"""
# Run the command
move_organizations_entries.Command().handle()
total_orgs_old = self.organization.objects.all().count()
total_orgs_new = Organization.objects.all().count()
self.assertEqual(total_orgs_old, total_orgs_new)
total_org_users_old = 0
total_org_users_new = 0
for org in self.organization.objects.all():
total_org_users_old += org.users.all().count()
for org in Organization.objects.all():
total_org_users_new += org.users.all().count()
self.assertEqual(total_org_users_old, total_org_users_new)
total_org_groups_old = 0
total_org_groups_new = 0
for org in self.organization.objects.all():
total_org_groups_old += org.groups.all().count()
for org in Organization.objects.all():
total_org_groups_new += org.groups.all().count()
self.assertEqual(total_org_groups_old, total_org_groups_new)
total_org_workgroups_old = 0
total_org_workgroups_new = 0
for org in self.organization.objects.all():
total_org_workgroups_old += org.workgroups.all().count()
for org in Organization.objects.all():
total_org_workgroups_new += org.workgroups.all().count()
self.assertEqual(total_org_workgroups_old, total_org_workgroups_new)
......@@ -10,14 +10,14 @@ from django.test import TestCase
from django.test.utils import override_settings
from projects.management.commands import migrate_project_courseids
from courseware.tests.modulestore_config import TEST_DATA_MIXED_MODULESTORE
from projects.models import Project, Workgroup, WorkgroupReview, WorkgroupSubmission, WorkgroupSubmissionReview
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
from django.db import connection
@override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE)
class MigrateCourseIdsTests(TestCase):
class MigrateCourseIdsTests(ModuleStoreTestCase):
"""
Test suite for data migration script
"""
......
......@@ -2,18 +2,15 @@
Run these tests @ Devstack:
rake fasttest_lms[common/djangoapps/api_manager/management/commands/tests/test_migrate_orgdata.py]
"""
from datetime import datetime
import uuid
from django.contrib.auth.models import User
from django.test import TestCase
from projects.management.commands import migrate_project_courseids_v2
from projects.models import Project, Workgroup, WorkgroupReview, WorkgroupPeerReview, WorkgroupSubmission, WorkgroupSubmissionReview
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
class MigrateCourseIdsTests(TestCase):
class MigrateCourseIdsTests(ModuleStoreTestCase):
"""
Test suite for data migration script
"""
......
......@@ -6,7 +6,6 @@ Run these tests @ Devstack:
"""
import json
import uuid
from urllib import urlencode
from django.contrib.auth.models import User
from django.core.cache import cache
......
......@@ -6,7 +6,6 @@ Run these tests @ Devstack:
"""
import json
import uuid
from urllib import urlencode
from django.contrib.auth.models import User
from django.core.cache import cache
......
......@@ -6,11 +6,10 @@ Run these tests @ Devstack:
"""
import json
import uuid
from urllib import urlencode
from django.contrib.auth.models import User
from django.core.cache import cache
from django.test import TestCase, Client
from django.test import Client
from django.test.utils import override_settings
from projects.models import Project, Workgroup, WorkgroupSubmission
......
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