Commit bb0180d3 by Ned Batchelder

Merge pull request #8288 from edx/ned/add-range-checker

Add range pylint checker
parents 3b9c13e0 cc5c1001
...@@ -273,11 +273,11 @@ class TestCourseListing(ModuleStoreTestCase): ...@@ -273,11 +273,11 @@ class TestCourseListing(ModuleStoreTestCase):
num_courses_to_create = 3 num_courses_to_create = 3
courses = [ courses = [
self._create_course_with_access_groups(CourseLocator('Org', 'CreatedCourse' + str(num), 'Run'), self.user) self._create_course_with_access_groups(CourseLocator('Org', 'CreatedCourse' + str(num), 'Run'), self.user)
for num in range(0, num_courses_to_create) for num in range(num_courses_to_create)
] ]
courses_in_progress = [ courses_in_progress = [
self._create_course_with_access_groups(CourseLocator('Org', 'InProgressCourse' + str(num), 'Run'), self.user) self._create_course_with_access_groups(CourseLocator('Org', 'InProgressCourse' + str(num), 'Run'), self.user)
for num in range(0, num_courses_to_create) for num in range(num_courses_to_create)
] ]
# simulate initiation of course actions # simulate initiation of course actions
......
...@@ -58,7 +58,7 @@ COURSE_CHILD_STRUCTURE = { ...@@ -58,7 +58,7 @@ COURSE_CHILD_STRUCTURE = {
def create_children(store, parent, category, load_factor): def create_children(store, parent, category, load_factor):
""" create load_factor children within the given parent; recursively call to insert children when appropriate """ """ create load_factor children within the given parent; recursively call to insert children when appropriate """
created_count = 0 created_count = 0
for child_index in range(0, load_factor): for child_index in range(load_factor):
child_object = ItemFactory.create( child_object = ItemFactory.create(
parent_location=parent.location, parent_location=parent.location,
category=category, category=category,
......
...@@ -144,7 +144,7 @@ class TestLibraries(LibraryTestCase): ...@@ -144,7 +144,7 @@ class TestLibraries(LibraryTestCase):
""" """
Test the 'max_count' property of LibraryContent blocks. Test the 'max_count' property of LibraryContent blocks.
""" """
for _ in range(0, num_to_create): for _ in range(num_to_create):
self._add_simple_content_block() self._add_simple_content_block()
with modulestore().default_store(ModuleStoreEnum.Type.split): with modulestore().default_store(ModuleStoreEnum.Type.split):
...@@ -168,7 +168,7 @@ class TestLibraries(LibraryTestCase): ...@@ -168,7 +168,7 @@ class TestLibraries(LibraryTestCase):
Test that the same student will always see the same selected child block Test that the same student will always see the same selected child block
""" """
# Create many blocks in the library and add them to a course: # Create many blocks in the library and add them to a course:
for num in range(0, 8): for num in range(8):
ItemFactory.create( ItemFactory.create(
data="This is #{}".format(num + 1), data="This is #{}".format(num + 1),
category="html", parent_location=self.library.location, user_id=self.user.id, publish_item=False category="html", parent_location=self.library.location, user_id=self.user.id, publish_item=False
...@@ -202,7 +202,7 @@ class TestLibraries(LibraryTestCase): ...@@ -202,7 +202,7 @@ class TestLibraries(LibraryTestCase):
""" """
Confirm that chosen_child is still the child seen by the test student Confirm that chosen_child is still the child seen by the test student
""" """
for _ in range(0, 6): # Repeat many times b/c blocks are randomized for _ in range(6): # Repeat many times b/c blocks are randomized
lc_block = modulestore().get_item(lc_block_key) # Reload block from the database lc_block = modulestore().get_item(lc_block_key) # Reload block from the database
self._bind_module(lc_block) self._bind_module(lc_block)
current_child = get_child_of_lc_block(lc_block) current_child = get_child_of_lc_block(lc_block)
......
...@@ -124,7 +124,7 @@ class HelperMethods(object): ...@@ -124,7 +124,7 @@ class HelperMethods(object):
i, 'Name ' + str(i), 'Description ' + str(i), i, 'Name ' + str(i), 'Description ' + str(i),
[Group(0, 'Group A'), Group(1, 'Group B'), Group(2, 'Group C')], [Group(0, 'Group A'), Group(1, 'Group B'), Group(2, 'Group C')],
scheme=None, scheme_id=scheme_id scheme=None, scheme_id=scheme_id
) for i in xrange(0, count) ) for i in xrange(count)
] ]
self.course.user_partitions = partitions self.course.user_partitions = partitions
self.save_course() self.save_course()
......
...@@ -51,7 +51,7 @@ class UnitTestLibraries(ModuleStoreTestCase): ...@@ -51,7 +51,7 @@ class UnitTestLibraries(ModuleStoreTestCase):
Test that we can GET /library/ to list all libraries visible to the current user. Test that we can GET /library/ to list all libraries visible to the current user.
""" """
# Create some more libraries # Create some more libraries
libraries = [LibraryFactory.create() for _ in range(0, 3)] libraries = [LibraryFactory.create() for _ in range(3)]
lib_dict = dict([(lib.location.library_key, lib) for lib in libraries]) lib_dict = dict([(lib.location.library_key, lib) for lib in libraries])
response = self.client.get_json(LIBRARY_REST_URL) response = self.client.get_json(LIBRARY_REST_URL)
......
...@@ -13,7 +13,7 @@ class MemcacheTest(TestCase): ...@@ -13,7 +13,7 @@ class MemcacheTest(TestCase):
""" """
# Test whitespace, control characters, and some non-ASCII UTF-16 # Test whitespace, control characters, and some non-ASCII UTF-16
UNICODE_CHAR_CODES = ([c for c in range(0, 30)] + [127] + UNICODE_CHAR_CODES = (range(30) + [127] +
[129, 500, 2 ** 8 - 1, 2 ** 8 + 1, 2 ** 16 - 1]) [129, 500, 2 ** 8 - 1, 2 ** 8 + 1, 2 ** 16 - 1])
def setUp(self): def setUp(self):
......
...@@ -73,12 +73,12 @@ class ResponseXMLFactory(object): ...@@ -73,12 +73,12 @@ class ResponseXMLFactory(object):
question.text = question_text question.text = question_text
# Add the response(s) # Add the response(s)
for i in range(0, int(num_responses)): for __ in range(int(num_responses)):
response_element = self.create_response_element(**kwargs) response_element = self.create_response_element(**kwargs)
root.append(response_element) root.append(response_element)
# Add input elements # Add input elements
for j in range(0, int(num_inputs)): for __ in range(int(num_inputs)):
input_element = self.create_input_element(**kwargs) input_element = self.create_input_element(**kwargs)
if not (None == input_element): if not (None == input_element):
response_element.append(input_element) response_element.append(input_element)
......
...@@ -553,14 +553,14 @@ class AnnotationInputTemplateTest(TemplateTestCase): ...@@ -553,14 +553,14 @@ class AnnotationInputTemplateTest(TemplateTestCase):
{'id': id_num, {'id': id_num,
'choice': 'correct', 'choice': 'correct',
'description': '<p>Unescaped <b>HTML {0}</b></p>'.format(id_num)} 'description': '<p>Unescaped <b>HTML {0}</b></p>'.format(id_num)}
for id_num in range(0, 5)] for id_num in range(5)]
xml = self.render_to_xml(self.context) xml = self.render_to_xml(self.context)
# Expect that each option description is visible # Expect that each option description is visible
# with unescaped HTML. # with unescaped HTML.
# Since the HTML is unescaped, we can traverse the XML tree # Since the HTML is unescaped, we can traverse the XML tree
for id_num in range(0, 5): for id_num in range(5):
xpath = "//span[@data-id='{0}']/p/b".format(id_num) xpath = "//span[@data-id='{0}']/p/b".format(id_num)
self.assert_has_text(xml, xpath, 'HTML {0}'.format(id_num), exact=False) self.assert_has_text(xml, xpath, 'HTML {0}'.format(id_num), exact=False)
...@@ -689,7 +689,7 @@ class OptionInputTemplateTest(TemplateTestCase): ...@@ -689,7 +689,7 @@ class OptionInputTemplateTest(TemplateTestCase):
# Create options 0-4, and select option 2 # Create options 0-4, and select option 2
self.context['options'] = [(id_num, '<b>Option {0}</b>'.format(id_num)) self.context['options'] = [(id_num, '<b>Option {0}</b>'.format(id_num))
for id_num in range(0, 5)] for id_num in range(5)]
self.context['value'] = 2 self.context['value'] = 2
xml = self.render_to_xml(self.context) xml = self.render_to_xml(self.context)
...@@ -701,7 +701,7 @@ class OptionInputTemplateTest(TemplateTestCase): ...@@ -701,7 +701,7 @@ class OptionInputTemplateTest(TemplateTestCase):
# Should have each of the options, with the correct description # Should have each of the options, with the correct description
# The description HTML should NOT be escaped # The description HTML should NOT be escaped
# (that's why we descend into the <b> tag) # (that's why we descend into the <b> tag)
for id_num in range(0, 5): for id_num in range(5):
xpath = "//option[@value='{0}']/b".format(id_num) xpath = "//option[@value='{0}']/b".format(id_num)
self.assert_has_text(xml, xpath, 'Option {0}'.format(id_num)) self.assert_has_text(xml, xpath, 'Option {0}'.format(id_num))
......
...@@ -144,7 +144,7 @@ class TestLibraries(MixedSplitTestCase): ...@@ -144,7 +144,7 @@ class TestLibraries(MixedSplitTestCase):
def test_get_libraries(self): def test_get_libraries(self):
""" Test get_libraries() """ """ Test get_libraries() """
libraries = [LibraryFactory.create(modulestore=self.store) for _ in range(0, 3)] libraries = [LibraryFactory.create(modulestore=self.store) for _ in range(3)]
lib_dict = dict([(lib.location.library_key, lib) for lib in libraries]) lib_dict = dict([(lib.location.library_key, lib) for lib in libraries])
lib_list = self.store.get_libraries() lib_list = self.store.get_libraries()
......
...@@ -107,7 +107,7 @@ class TestSplitCopyTemplate(MixedSplitTestCase): ...@@ -107,7 +107,7 @@ class TestSplitCopyTemplate(MixedSplitTestCase):
# We do the following twice because different methods get used inside # We do the following twice because different methods get used inside
# split modulestore on first vs. subsequent publish # split modulestore on first vs. subsequent publish
for __ in range(0, 2): for __ in range(2):
# Publish: # Publish:
self.store.publish(problem_key_in_course, self.user_id) self.store.publish(problem_key_in_course, self.user_id)
# Test that the defaults values are there. # Test that the defaults values are there.
......
...@@ -665,8 +665,8 @@ class CombinedOpenEndedV1Module(object): ...@@ -665,8 +665,8 @@ class CombinedOpenEndedV1Module(object):
last_post_assessment = task.latest_post_assessment(self.system, short_feedback=False, join_feedback=False) last_post_assessment = task.latest_post_assessment(self.system, short_feedback=False, join_feedback=False)
if isinstance(last_post_assessment, list): if isinstance(last_post_assessment, list):
eval_list = [] eval_list = []
for i in xrange(0, len(last_post_assessment)): for assess in last_post_assessment:
eval_list.append(task.format_feedback_with_evaluation(self.system, last_post_assessment[i])) eval_list.append(task.format_feedback_with_evaluation(self.system, assess))
last_post_evaluation = "".join(eval_list) last_post_evaluation = "".join(eval_list)
else: else:
last_post_evaluation = task.format_feedback_with_evaluation(self.system, last_post_assessment) last_post_evaluation = task.format_feedback_with_evaluation(self.system, last_post_assessment)
...@@ -1017,7 +1017,7 @@ class CombinedOpenEndedV1Module(object): ...@@ -1017,7 +1017,7 @@ class CombinedOpenEndedV1Module(object):
ugettext = self.system.service(self, "i18n").ugettext ugettext = self.system.service(self, "i18n").ugettext
status_list = [] status_list = []
current_task_human_name = "" current_task_human_name = ""
for i in xrange(0, len(self.task_xml)): for i in xrange(len(self.task_xml)):
human_task_name = self.extract_human_name_from_task(self.task_xml[i]) human_task_name = self.extract_human_name_from_task(self.task_xml[i])
human_task_name = ugettext(human_task_name) # pylint: disable=translation-of-non-string human_task_name = ugettext(human_task_name) # pylint: disable=translation-of-non-string
# Extract the name of the current task for screen readers. # Extract the name of the current task for screen readers.
...@@ -1080,16 +1080,16 @@ class CombinedOpenEndedV1Module(object): ...@@ -1080,16 +1080,16 @@ class CombinedOpenEndedV1Module(object):
if self.is_scored: if self.is_scored:
# Finds the maximum score of all student attempts and keeps it. # Finds the maximum score of all student attempts and keeps it.
score_mat = [] score_mat = []
for i in xrange(0, len(self.task_states)): for i in xrange(len(self.task_states)):
# For each task, extract all student scores on that task (each attempt for each task) # For each task, extract all student scores on that task (each attempt for each task)
last_response = self.get_last_response(i) last_response = self.get_last_response(i)
score = last_response.get('all_scores', None) score = last_response.get('all_scores', None)
if score is not None: if score is not None:
# Convert none scores and weight scores properly # Convert none scores and weight scores properly
for z in xrange(0, len(score)): for j in xrange(len(score)):
if score[z] is None: if score[j] is None:
score[z] = 0 score[j] = 0
score[z] *= float(weight) score[j] *= float(weight)
score_mat.append(score) score_mat.append(score)
if len(score_mat) > 0: if len(score_mat) > 0:
...@@ -1219,7 +1219,7 @@ class CombinedOpenEndedV1Descriptor(object): ...@@ -1219,7 +1219,7 @@ class CombinedOpenEndedV1Descriptor(object):
def parse_task(k): def parse_task(k):
"""Assumes that xml_object has child k""" """Assumes that xml_object has child k"""
return [stringify_children(xml_object.xpath(k)[i]) for i in xrange(0, len(xml_object.xpath(k)))] return [stringify_children(xml_object.xpath(k)[i]) for i in xrange(len(xml_object.xpath(k)))]
def parse(k): def parse(k):
"""Assumes that xml_object has child k""" """Assumes that xml_object has child k"""
......
...@@ -59,9 +59,9 @@ class CombinedOpenEndedRubric(object): ...@@ -59,9 +59,9 @@ class CombinedOpenEndedRubric(object):
try: try:
rubric_categories = self.extract_categories(rubric_xml) rubric_categories = self.extract_categories(rubric_xml)
if score_list and len(score_list) == len(rubric_categories): if score_list and len(score_list) == len(rubric_categories):
for i in xrange(0, len(rubric_categories)): for i in xrange(len(rubric_categories)):
category = rubric_categories[i] category = rubric_categories[i]
for j in xrange(0, len(category['options'])): for j in xrange(len(category['options'])):
if score_list[i] == j: if score_list[i] == j:
rubric_categories[i]['options'][j]['selected'] = True rubric_categories[i]['options'][j]['selected'] = True
rubric_scores = [cat['score'] for cat in rubric_categories] rubric_scores = [cat['score'] for cat in rubric_categories]
...@@ -315,23 +315,22 @@ class CombinedOpenEndedRubric(object): ...@@ -315,23 +315,22 @@ class CombinedOpenEndedRubric(object):
score_lists = [] score_lists = []
score_type_list = [] score_type_list = []
feedback_type_list = [] feedback_type_list = []
for i in xrange(0, len(scores)): for i in xrange(len(scores)):
score_cont_list = scores[i] score_cont_list = scores[i]
for j in xrange(0, len(score_cont_list)): for j in xrange(len(score_cont_list)):
score_list = score_cont_list[j] score_list = score_cont_list[j]
score_lists.append(score_list) score_lists.append(score_list)
score_type_list.append(score_types[i][j]) score_type_list.append(score_types[i][j])
feedback_type_list.append(feedback_types[i][j]) feedback_type_list.append(feedback_types[i][j])
score_list_len = len(score_lists[0]) score_list_len = len(score_lists[0])
for i in xrange(0, len(score_lists)): for score_list in score_lists:
score_list = score_lists[i]
if len(score_list) != score_list_len: if len(score_list) != score_list_len:
return success, "" return success, ""
score_tuples = [] score_tuples = []
for i in xrange(0, len(score_lists)): for i in xrange(len(score_lists)):
for j in xrange(0, len(score_lists[i])): for j in xrange(len(score_lists[i])):
tuple = [1, j, score_lists[i][j], [], []] tuple = [1, j, score_lists[i][j], [], []]
score_tuples, tup_ind = CombinedOpenEndedRubric.check_for_tuple_matches(score_tuples, tuple) score_tuples, tup_ind = CombinedOpenEndedRubric.check_for_tuple_matches(score_tuples, tuple)
score_tuples[tup_ind][0] += 1 score_tuples[tup_ind][0] += 1
...@@ -353,9 +352,9 @@ class CombinedOpenEndedRubric(object): ...@@ -353,9 +352,9 @@ class CombinedOpenEndedRubric(object):
category = tuple[1] category = tuple[1]
score = tuple[2] score = tuple[2]
tup_ind = -1 tup_ind = -1
for t in xrange(0, len(tuples)): for ind in xrange(len(tuples)):
if tuples[t][1] == category and tuples[t][2] == score: if tuples[ind][1] == category and tuples[ind][2] == score:
tup_ind = t tup_ind = ind
break break
if tup_ind == -1: if tup_ind == -1:
......
...@@ -574,7 +574,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild): ...@@ -574,7 +574,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild):
feedback_dicts = [] feedback_dicts = []
grader_ids = [] grader_ids = []
submission_ids = [] submission_ids = []
for i in xrange(0, len(score_result['score'])): for i in xrange(len(score_result['score'])):
new_score_result = { new_score_result = {
'score': score_result['score'][i], 'score': score_result['score'][i],
'feedback': score_result['feedback'][i], 'feedback': score_result['feedback'][i],
...@@ -817,7 +817,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild): ...@@ -817,7 +817,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild):
"""None if not available""" """None if not available"""
if not self.child_history: if not self.child_history:
return None return None
return [self.score_for_attempt(index) for index in xrange(0, len(self.child_history))] return [self.score_for_attempt(index) for index in xrange(len(self.child_history))]
def score_for_attempt(self, index): def score_for_attempt(self, index):
""" """
......
...@@ -213,7 +213,7 @@ class OpenEndedChild(object): ...@@ -213,7 +213,7 @@ class OpenEndedChild(object):
"""None if not available""" """None if not available"""
if not self.child_history: if not self.child_history:
return None return None
return [self.child_history[i].get('score') for i in xrange(0, len(self.child_history))] return [child_hist.get('score') for child_hist in self.child_history]
def latest_post_assessment(self, system): def latest_post_assessment(self, system):
"""Empty string if not available""" """Empty string if not available"""
......
...@@ -141,7 +141,7 @@ class LibraryEditPageTest(StudioLibraryTest): ...@@ -141,7 +141,7 @@ class LibraryEditPageTest(StudioLibraryTest):
Then 10 are displayed. Then 10 are displayed.
""" """
self.assertEqual(len(self.lib_page.xblocks), 0) self.assertEqual(len(self.lib_page.xblocks), 0)
for _ in range(0, 10): for _ in range(10):
add_component(self.lib_page, "problem", "Multiple Choice") add_component(self.lib_page, "problem", "Multiple Choice")
self.assertEqual(len(self.lib_page.xblocks), 10) self.assertEqual(len(self.lib_page.xblocks), 10)
add_component(self.lib_page, "problem", "Multiple Choice") add_component(self.lib_page, "problem", "Multiple Choice")
......
...@@ -148,7 +148,7 @@ class TestRecommender(ModuleStoreTestCase, LoginEnrollmentTestCase): ...@@ -148,7 +148,7 @@ class TestRecommender(ModuleStoreTestCase, LoginEnrollmentTestCase):
if xblock_name is None: if xblock_name is None:
xblock_name = TestRecommender.XBLOCK_NAMES[0] xblock_name = TestRecommender.XBLOCK_NAMES[0]
url = self.get_handler_url(handler, xblock_name) url = self.get_handler_url(handler, xblock_name)
for _ in range(0, times): for _ in range(times):
self.client.post(url, json.dumps({'id': resource_id}), '') self.client.post(url, json.dumps({'id': resource_id}), '')
def call_event(self, handler, resource, xblock_name=None): def call_event(self, handler, resource, xblock_name=None):
...@@ -460,7 +460,7 @@ class TestRecommenderVoteWithResources(TestRecommenderWithResources): ...@@ -460,7 +460,7 @@ class TestRecommenderVoteWithResources(TestRecommenderWithResources):
Vote a resource thrice Vote a resource thrice
""" """
resource = {"id": self.resource_id, 'event': test_case['event']} resource = {"id": self.resource_id, 'event': test_case['event']}
for _ in range(0, 2): for _ in range(2):
self.call_event('handle_vote', resource) self.call_event('handle_vote', resource)
# Test # Test
self.check_event_response_by_key('handle_vote', resource, 'newVotes', test_case['new_votes']) self.check_event_response_by_key('handle_vote', resource, 'newVotes', test_case['new_votes'])
...@@ -552,7 +552,7 @@ class TestRecommenderStaffFeedbackWithResources(TestRecommenderWithResources): ...@@ -552,7 +552,7 @@ class TestRecommenderStaffFeedbackWithResources(TestRecommenderWithResources):
Endorse a resource once/twice/thrice Endorse a resource once/twice/thrice
""" """
resource = {"id": self.resource_id, 'reason': ''} resource = {"id": self.resource_id, 'reason': ''}
for _ in range(0, test_case['times'] - 1): for _ in range(test_case['times'] - 1):
self.call_event('endorse_resource', resource) self.call_event('endorse_resource', resource)
# Test # Test
self.check_event_response_by_key('endorse_resource', resource, test_case['key'], test_case['val']) self.check_event_response_by_key('endorse_resource', resource, test_case['key'], test_case['val'])
...@@ -567,7 +567,7 @@ class TestRecommenderStaffFeedbackWithResources(TestRecommenderWithResources): ...@@ -567,7 +567,7 @@ class TestRecommenderStaffFeedbackWithResources(TestRecommenderWithResources):
Remove a resource once/twice/thrice Remove a resource once/twice/thrice
""" """
resource = {"id": self.resource_id, 'reason': ''} resource = {"id": self.resource_id, 'reason': ''}
for _ in range(0, test_case['times'] - 1): for _ in range(test_case['times'] - 1):
self.call_event('remove_resource', resource) self.call_event('remove_resource', resource)
# Test # Test
self.check_event_response_by_http_status('remove_resource', resource, test_case['status']) self.check_event_response_by_http_status('remove_resource', resource, test_case['status'])
......
...@@ -55,11 +55,11 @@ class FakeEmail(FakeInfo): ...@@ -55,11 +55,11 @@ class FakeEmail(FakeInfo):
super(FakeEmail, self).__init__() super(FakeEmail, self).__init__()
self.id = unicode(email_id) # pylint: disable=invalid-name self.id = unicode(email_id) # pylint: disable=invalid-name
# Select a random data for create field # Select a random data for create field
year = random.choice(range(1950, 2000)) year = random.randint(1950, 2000)
month = random.choice(range(1, 12)) month = random.randint(1, 12)
day = random.choice(range(1, 28)) day = random.randint(1, 28)
hour = random.choice(range(0, 23)) hour = random.randint(0, 23)
minute = random.choice(range(0, 59)) minute = random.randint(0, 59)
self.created = datetime.datetime(year, month, day, hour, minute, tzinfo=utc) self.created = datetime.datetime(year, month, day, hour, minute, tzinfo=utc)
......
...@@ -144,12 +144,12 @@ class TestVideoAPIMixin(object): ...@@ -144,12 +144,12 @@ class TestVideoAPIMixin(object):
""" """
path = course_outline[outline_index]['path'] path = course_outline[outline_index]['path']
self.assertEqual(len(path), len(path_list)) self.assertEqual(len(path), len(path_list))
for i in range(0, len(path_list)): for i in range(len(path_list)):
self.assertEqual(path_list[i], path[i]['name']) self.assertEqual(path_list[i], path[i]['name'])
#named_path will be deprecated eventually #named_path will be deprecated eventually
named_path = course_outline[outline_index]['named_path'] named_path = course_outline[outline_index]['named_path']
self.assertEqual(len(named_path), len(path_list)) self.assertEqual(len(named_path), len(path_list))
for i in range(0, len(path_list)): for i in range(len(path_list)):
self.assertEqual(path_list[i], named_path[i]) self.assertEqual(path_list[i], named_path[i])
def _setup_course_partitions(self, scheme_id='random', is_cohorted=False): def _setup_course_partitions(self, scheme_id='random', is_cohorted=False):
......
...@@ -319,7 +319,7 @@ def get_problem_list(request, course_id): ...@@ -319,7 +319,7 @@ def get_problem_list(request, course_id):
u'If not, please do so and return to this page.' u'If not, please do so and return to this page.'
) )
valid_problem_list = [] valid_problem_list = []
for i in xrange(0, len(problem_list)): for i in xrange(len(problem_list)):
# Needed to ensure that the 'location' key can be accessed. # Needed to ensure that the 'location' key can be accessed.
try: try:
problem_list[i] = json.loads(problem_list[i]) problem_list[i] = json.loads(problem_list[i])
......
...@@ -247,7 +247,7 @@ def combined_notifications(request, course_id): ...@@ -247,7 +247,7 @@ def combined_notifications(request, course_id):
notification_tuples = open_ended_notifications.NOTIFICATION_TYPES notification_tuples = open_ended_notifications.NOTIFICATION_TYPES
notification_list = [] notification_list = []
for response_num in xrange(0, len(notification_tuples)): for response_num in xrange(len(notification_tuples)):
tag = notification_tuples[response_num][0] tag = notification_tuples[response_num][0]
if tag in response: if tag in response:
url_name = notification_tuples[response_num][1] url_name = notification_tuples[response_num][1]
......
...@@ -52,7 +52,7 @@ class TestRandomUserPartitionScheme(PartitionTestCase): ...@@ -52,7 +52,7 @@ class TestRandomUserPartitionScheme(PartitionTestCase):
group1_id = RandomUserPartitionScheme.get_group_for_user(self.MOCK_COURSE_ID, self.user, self.user_partition) group1_id = RandomUserPartitionScheme.get_group_for_user(self.MOCK_COURSE_ID, self.user, self.user_partition)
# make sure we get the same group back out every time # make sure we get the same group back out every time
for __ in range(0, 10): for __ in range(10):
group2_id = RandomUserPartitionScheme.get_group_for_user(self.MOCK_COURSE_ID, self.user, self.user_partition) group2_id = RandomUserPartitionScheme.get_group_for_user(self.MOCK_COURSE_ID, self.user, self.user_partition)
self.assertEqual(group1_id, group2_id) self.assertEqual(group1_id, group2_id)
......
...@@ -30,6 +30,7 @@ load-plugins = edx_lint.pylint ...@@ -30,6 +30,7 @@ load-plugins = edx_lint.pylint
[MESSAGES CONTROL] [MESSAGES CONTROL]
disable = disable =
locally-disabled, locally-disabled,
locally-enabled,
too-few-public-methods, too-few-public-methods,
bad-builtin, bad-builtin,
star-args, star-args,
...@@ -150,4 +151,4 @@ int-import-graph = ...@@ -150,4 +151,4 @@ int-import-graph =
[EXCEPTIONS] [EXCEPTIONS]
overgeneral-exceptions = Exception overgeneral-exceptions = Exception
# 05a77c494ca87a2939bd5db9ef4988ea248c417e # 0f5810dfd8c52cdd91c425550319ae6040a8fe3e
...@@ -47,7 +47,7 @@ git+https://github.com/hmarr/django-debug-toolbar-mongo.git@b0686a76f1ce3532088c ...@@ -47,7 +47,7 @@ git+https://github.com/hmarr/django-debug-toolbar-mongo.git@b0686a76f1ce3532088c
-e git+https://github.com/pmitros/RecommenderXBlock.git@518234bc354edbfc2651b9e534ddb54f96080779#egg=recommender-xblock -e git+https://github.com/pmitros/RecommenderXBlock.git@518234bc354edbfc2651b9e534ddb54f96080779#egg=recommender-xblock
-e git+https://github.com/edx/edx-milestones.git@547f2250ee49e73ce8d7ff4e78ecf1b049892510#egg=edx-milestones -e git+https://github.com/edx/edx-milestones.git@547f2250ee49e73ce8d7ff4e78ecf1b049892510#egg=edx-milestones
-e git+https://github.com/edx/edx-search.git@e8b7c262adb500dbb0eced5434a26d9fa2d99dc3#egg=edx-search -e git+https://github.com/edx/edx-search.git@e8b7c262adb500dbb0eced5434a26d9fa2d99dc3#egg=edx-search
git+https://github.com/edx/edx-lint.git@8bf82a32ecb8598c415413df66f5232ab8d974e9#egg=edx_lint==0.2.1 git+https://github.com/edx/edx-lint.git@ed8c8d2a0267d4d42f43642d193e25f8bd575d9b#egg=edx_lint==0.2.3
-e git+https://github.com/edx/xblock-utils.git@db22bc40fd2a75458a3c66d057f88aff5a7383e6#egg=xblock-utils -e git+https://github.com/edx/xblock-utils.git@db22bc40fd2a75458a3c66d057f88aff5a7383e6#egg=xblock-utils
-e git+https://github.com/edx-solutions/xblock-google-drive.git@138e6fa0bf3a2013e904a085b9fed77dab7f3f21#egg=xblock-google-drive -e git+https://github.com/edx-solutions/xblock-google-drive.git@138e6fa0bf3a2013e904a085b9fed77dab7f3f21#egg=xblock-google-drive
-e git+https://github.com/edx/edx-reverification-block.git@03da85753d5f563a22c1282c0e89fcb2e828b8c1#egg=edx-reverification-block -e git+https://github.com/edx/edx-reverification-block.git@03da85753d5f563a22c1282c0e89fcb2e828b8c1#egg=edx-reverification-block
......
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