diff --git a/lms/djangoapps/licenses/management/commands/generate_serial_numbers.py b/lms/djangoapps/licenses/management/commands/generate_serial_numbers.py index 4409f1cb45..063ae02c47 100644 --- a/lms/djangoapps/licenses/management/commands/generate_serial_numbers.py +++ b/lms/djangoapps/licenses/management/commands/generate_serial_numbers.py @@ -6,6 +6,7 @@ from django.core.management.base import BaseCommand, CommandError from xmodule.modulestore.django import modulestore from licenses.models import CourseSoftware, UserLicense +from xmodule.modulestore.locations import SlashSeparatedCourseKey class Command(BaseCommand): @@ -36,10 +37,8 @@ class Command(BaseCommand): raise CommandError("Incorrect number of arguments") course_id = args[0] - courses = modulestore().get_courses() - known_course_ids = set(c.id for c in courses) - - if course_id not in known_course_ids: + course_key = SlashSeparatedCourseKey.from_deprecated_string(course_id) + if not modulestore().has_course(course_key): raise CommandError("Unknown course_id") software_name = escape(args[1].lower()) @@ -49,7 +48,7 @@ class Command(BaseCommand): except ValueError: raise CommandError("Invalid argument.") - return course_id, software_name, count + return course_key, software_name, count def _generate_serials(self, software, count): print "Generating {0} serials".format(count) diff --git a/lms/djangoapps/licenses/management/commands/import_serial_numbers.py b/lms/djangoapps/licenses/management/commands/import_serial_numbers.py index 0a08ea83d3..50c61509c4 100644 --- a/lms/djangoapps/licenses/management/commands/import_serial_numbers.py +++ b/lms/djangoapps/licenses/management/commands/import_serial_numbers.py @@ -6,6 +6,7 @@ from django.core.management.base import BaseCommand, CommandError from xmodule.modulestore.django import modulestore from licenses.models import CourseSoftware, UserLicense +from xmodule.modulestore.locations import SlashSeparatedCourseKey class Command(BaseCommand): @@ -36,10 +37,8 @@ class Command(BaseCommand): raise CommandError("Incorrect number of arguments") course_id = args[0] - courses = modulestore().get_courses() - known_course_ids = set(c.id for c in courses) - - if course_id not in known_course_ids: + course_key = SlashSeparatedCourseKey.from_deprecated_string(course_id) + if not modulestore().has_course(course_key): raise CommandError("Unknown course_id") software_name = escape(args[1].lower()) @@ -48,7 +47,7 @@ class Command(BaseCommand): if not os.path.exists(filename): raise CommandError("Cannot find filename {0}".format(filename)) - return course_id, software_name, filename + return course_key, software_name, filename def _import_serials(self, software, filename): print "Importing serial numbers for {0}.".format(software) diff --git a/lms/djangoapps/licenses/tests.py b/lms/djangoapps/licenses/tests.py index a416c59455..d9f190826c 100644 --- a/lms/djangoapps/licenses/tests.py +++ b/lms/djangoapps/licenses/tests.py @@ -156,12 +156,12 @@ class CommandTest(ModuleStoreTestCase): log.debug('Adding one set of serials for {0}'.format(SOFTWARE_1)) with generate_serials_file(size) as temp_file: - args = [self.course_id, SOFTWARE_1, temp_file.name] + args = [self.course_id.to_deprecated_string(), SOFTWARE_1, temp_file.name] call_command('import_serial_numbers', *args) log.debug('Adding one set of serials for {0}'.format(SOFTWARE_2)) with generate_serials_file(size) as temp_file: - args = [self.course_id, SOFTWARE_2, temp_file.name] + args = [self.course_id.to_deprecated_string(), SOFTWARE_2, temp_file.name] call_command('import_serial_numbers', *args) log.debug('There should be only 2 course-software entries') @@ -174,7 +174,7 @@ class CommandTest(ModuleStoreTestCase): log.debug('Adding more serial numbers to {0}'.format(SOFTWARE_1)) with generate_serials_file(size) as temp_file: - args = [self.course_id, SOFTWARE_1, temp_file.name] + args = [self.course_id.to_deprecated_string(), SOFTWARE_1, temp_file.name] call_command('import_serial_numbers', *args) log.debug('There should be still only 2 course-software entries') @@ -197,7 +197,7 @@ class CommandTest(ModuleStoreTestCase): with NamedTemporaryFile() as tmpfile: tmpfile.write('\n'.join(known_serials)) tmpfile.flush() - args = [self.course_id, SOFTWARE_1, tmpfile.name] + args = [self.course_id.to_deprecated_string(), SOFTWARE_1, tmpfile.name] call_command('import_serial_numbers', *args) log.debug('Check if we added only the new ones')