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, ...@@ -162,4 +162,10 @@ class SecureListAPIView(PermissionMixin,
""" """
Inherited from ListAPIView 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): ...@@ -135,7 +135,7 @@ class GenerateGradebookEntriesTests(ModuleStoreTestCase):
@patch.dict(settings.FEATURES, { @patch.dict(settings.FEATURES, {
'ALLOW_STUDENT_STATE_UPDATES_ON_CLOSED_COURSE': False, 'ALLOW_STUDENT_STATE_UPDATES_ON_CLOSED_COURSE': False,
'SIGNAL_ON_SCORE_CHANGED': True 'SIGNAL_ON_SCORE_CHANGED': False
}) })
def test_generate_gradebook_entries(self): 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 ...@@ -10,14 +10,14 @@ from django.test import TestCase
from django.test.utils import override_settings from django.test.utils import override_settings
from projects.management.commands import migrate_project_courseids 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 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 xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
from django.db import connection from django.db import connection
@override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE)
class MigrateCourseIdsTests(TestCase): class MigrateCourseIdsTests(ModuleStoreTestCase):
""" """
Test suite for data migration script Test suite for data migration script
""" """
......
...@@ -2,18 +2,15 @@ ...@@ -2,18 +2,15 @@
Run these tests @ Devstack: Run these tests @ Devstack:
rake fasttest_lms[common/djangoapps/api_manager/management/commands/tests/test_migrate_orgdata.py] 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.contrib.auth.models import User
from django.test import TestCase
from projects.management.commands import migrate_project_courseids_v2 from projects.management.commands import migrate_project_courseids_v2
from projects.models import Project, Workgroup, WorkgroupReview, WorkgroupPeerReview, WorkgroupSubmission, WorkgroupSubmissionReview 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 Test suite for data migration script
""" """
......
...@@ -6,7 +6,6 @@ Run these tests @ Devstack: ...@@ -6,7 +6,6 @@ Run these tests @ Devstack:
""" """
import json import json
import uuid import uuid
from urllib import urlencode
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.cache import cache from django.core.cache import cache
......
...@@ -6,7 +6,6 @@ Run these tests @ Devstack: ...@@ -6,7 +6,6 @@ Run these tests @ Devstack:
""" """
import json import json
import uuid import uuid
from urllib import urlencode
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.cache import cache from django.core.cache import cache
......
...@@ -6,11 +6,10 @@ Run these tests @ Devstack: ...@@ -6,11 +6,10 @@ Run these tests @ Devstack:
""" """
import json import json
import uuid import uuid
from urllib import urlencode
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.cache import cache 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 django.test.utils import override_settings
from projects.models import Project, Workgroup, WorkgroupSubmission 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