def handle(self, *args, **options): if not options['course']: raise CommandError(Command.course_option.help) course = get_course_by_id(options['course']) print 'Warning: this command directly edits the list of course tabs in mongo.' print 'Tabs before any changes:' print_course(course) try: if options['delete']: if len(args) != 1: raise CommandError(Command.delete_option.help) num = int(args[0]) if query_yes_no('Deleting tab {0} Confirm?'.format(num), default='no'): tabs.primitive_delete(course, num - 1) # -1 for 0-based indexing elif options['insert']: if len(args) != 3: raise CommandError(Command.insert_option.help) num = int(args[0]) tab_type = args[1] name = args[2] if query_yes_no('Inserting tab {0} "{1}" "{2}" Confirm?'.format(num, tab_type, name), default='no'): tabs.primitive_insert(course, num - 1, tab_type, name) # -1 as above except ValueError as e: # Cute: translate to CommandError so the CLI error prints nicely. raise CommandError(e)
def handle(self, *args, **options): course = get_course_by_id(CourseKey.from_string(options['course'])) print( 'Warning: this command directly edits the list of course tabs in mongo.' ) print('Tabs before any changes:') print_course(course) try: if options['delete']: num = int(options['delete'][0]) if num < 3: raise CommandError("Tabs 1 and 2 cannot be changed.") if query_yes_no(u'Deleting tab {0} Confirm?'.format(num), default='no'): tabs.primitive_delete(course, num - 1) # -1 for 0-based indexing elif options['insert']: num, tab_type, name = options['insert'] num = int(num) if num < 3: raise CommandError("Tabs 1 and 2 cannot be changed.") if query_yes_no( u'Inserting tab {0} "{1}" "{2}" Confirm?'.format( num, tab_type, name), default='no'): tabs.primitive_insert(course, num - 1, tab_type, name) # -1 as above except ValueError as e: # Cute: translate to CommandError so the CLI error prints nicely. raise CommandError(e)
def handle(self, *args, **options): if not options["course"]: raise CommandError(Command.course_option.help) try: course_key = CourseKey.from_string(options["course"]) except InvalidKeyError: course_key = SlashSeparatedCourseKey.from_deprecated_string(options["course"]) course = get_course_by_id(course_key) print "Warning: this command directly edits the list of course tabs in mongo." print "Tabs before any changes:" print_course(course) try: if options["delete"]: if len(args) != 1: raise CommandError(Command.delete_option.help) num = int(args[0]) if query_yes_no("Deleting tab {0} Confirm?".format(num), default="no"): tabs.primitive_delete(course, num - 1) # -1 for 0-based indexing elif options["insert"]: if len(args) != 3: raise CommandError(Command.insert_option.help) num = int(args[0]) tab_type = args[1] name = args[2] if query_yes_no('Inserting tab {0} "{1}" "{2}" Confirm?'.format(num, tab_type, name), default="no"): tabs.primitive_insert(course, num - 1, tab_type, name) # -1 as above except ValueError as e: # Cute: translate to CommandError so the CLI error prints nicely. raise CommandError(e)
def handle(self, *args, **options): course = get_course_by_id(CourseKey.from_string(options['course'])) print('Warning: this command directly edits the list of course tabs in mongo.') print('Tabs before any changes:') print_course(course) try: if options['delete']: num = int(options['delete'][0]) if num < 3: raise CommandError("Tabs 1 and 2 cannot be changed.") if query_yes_no(u'Deleting tab {0} Confirm?'.format(num), default='no'): tabs.primitive_delete(course, num - 1) # -1 for 0-based indexing elif options['insert']: num, tab_type, name = options['insert'] num = int(num) if num < 3: raise CommandError("Tabs 1 and 2 cannot be changed.") if query_yes_no(u'Inserting tab {0} "{1}" "{2}" Confirm?'.format(num, tab_type, name), default='no'): tabs.primitive_insert(course, num - 1, tab_type, name) # -1 as above except ValueError as e: # Cute: translate to CommandError so the CLI error prints nicely. raise CommandError(e)
def test_delete(self): """Test primitive tab deletion.""" course = CourseFactory.create() with self.assertRaises(ValueError): tabs.primitive_delete(course, 0) with self.assertRaises(ValueError): tabs.primitive_delete(course, 1) with self.assertRaises(IndexError): tabs.primitive_delete(course, 6) tabs.primitive_delete(course, 2) self.assertNotIn({u'type': u'textbooks'}, course.tabs) # Check that discussion has shifted up self.assertEquals(course.tabs[2], {'type': 'discussion', 'name': 'Discussion'})
def test_delete(self): """Test primitive tab deletion.""" course = CourseFactory.create(org='edX', course='999') with self.assertRaises(ValueError): tabs.primitive_delete(course, 0) with self.assertRaises(ValueError): tabs.primitive_delete(course, 1) with self.assertRaises(IndexError): tabs.primitive_delete(course, 6) tabs.primitive_delete(course, 2) self.assertFalse({u'type': u'textbooks'} in course.tabs) # Check that discussion has shifted up self.assertEquals(course.tabs[2], {'type': 'discussion', 'name': 'Discussion'})
def test_delete(self): """Test primitive tab deletion.""" course = CourseFactory.create(org="edX", course="999") with self.assertRaises(ValueError): tabs.primitive_delete(course, 0) with self.assertRaises(ValueError): tabs.primitive_delete(course, 1) with self.assertRaises(IndexError): tabs.primitive_delete(course, 6) tabs.primitive_delete(course, 2) self.assertFalse({u"type": u"textbooks"} in course.tabs) # Check that discussion has shifted up self.assertEquals(course.tabs[2], {"type": "discussion", "name": "Discussion"})
def test_delete(self): """Test primitive tab deletion.""" course = CourseFactory.create() with self.assertRaises(ValueError): tabs.primitive_delete(course, 0) with self.assertRaises(ValueError): tabs.primitive_delete(course, 1) with self.assertRaises(IndexError): # Edraak (university): Included university_id tab in edX tests tabs.primitive_delete(course, 7) tabs.primitive_delete(course, 2) self.assertNotIn({u'type': u'textbooks'}, course.tabs) # Check that discussion has shifted up self.assertEquals(course.tabs[2], { 'type': 'discussion', 'name': 'Discussion' })