Commit f5a04bb0 by Michael Terry Committed by Michael Terry

Update edx-lint to 0.5.5

This fixes builds in travis. I specifically didn't change pylintrc
yet in this branch, to avoid having to fix all the new errors. But
I did make some of those  lint fixes anyway.
parent 71975b7e
......@@ -31,7 +31,7 @@ def django_cache_add_xdist_key_prefix(request):
@pytest.fixture
def django_cache(django_cache_add_xdist_key_prefix): # pylint: disable=unused-argument
def django_cache(django_cache_add_xdist_key_prefix): # pylint: disable=redefined-outer-name,unused-argument
skip_if_no_django()
cache.clear()
......@@ -56,7 +56,7 @@ def haystack_add_xdist_suffix_to_index_name(request):
@pytest.fixture
def haystack_default_connection(haystack_add_xdist_suffix_to_index_name): # pylint: disable=unused-argument
def haystack_default_connection(haystack_add_xdist_suffix_to_index_name): # pylint: disable=redefined-outer-name,unused-argument
skip_if_no_django()
backend = haystack_connections['default'].get_backend()
......@@ -86,7 +86,7 @@ def site(db): # pylint: disable=unused-argument
@pytest.fixture
def partner(db, site): # pylint: disable=unused-argument
def partner(db, site): # pylint: disable=redefined-outer-name,unused-argument
skip_if_no_django()
return PartnerFactory(site=site)
......
......@@ -12,7 +12,7 @@ API_TIMESTAMP_KEY = 'api_timestamp'
class ApiTimestampKeyBit(KeyBitBase):
def get_data(self, **kwargs):
def get_data(self, **kwargs): # pylint: disable=arguments-differ
return cache.get_or_set(API_TIMESTAMP_KEY, time.time, None)
......
......@@ -42,7 +42,7 @@ class ProxiedCall:
# If a request is available, look for the presence of a query parameter
# indicating that we should use this paginator.
is_query_param_present = request and request.query_params.get(query_param) # pylint: disable=no-member
is_query_param_present = request and request.query_params.get(query_param)
if is_request_stored or is_query_param_present:
return paginator
......
......@@ -60,7 +60,7 @@ class CatalogTests(ElasticsearchTestMixin, TestCase):
def test_get_viewers(self):
""" Verify the method returns a QuerySet of individuals with explicit permission to view a Catalog. """
catalog = self.catalog
self.assertFalse(catalog.viewers.exists()) # pylint:disable=no-member
self.assertFalse(catalog.viewers.exists())
user = UserFactory()
user.add_obj_perm(Catalog.VIEW_PERMISSION, catalog)
......
......@@ -57,7 +57,7 @@ class AbstractDataLoaderTest(TestCase):
AbstractDataLoader.delete_orphans()
for instance in instances:
self.assertFalse(instance.__class__.objects.filter(pk=instance.pk).exists()) # pylint: disable=no-member
self.assertFalse(instance.__class__.objects.filter(pk=instance.pk).exists())
def test_clean_html(self):
""" Verify the method removes unnecessary HTML attributes. """
......@@ -107,7 +107,7 @@ class OrganizationsApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, T
api_data = self.mock_api()
if not partner_has_marketing_site:
self.partner.marketing_site_url_root = None
self.partner.save() # pylint: disable=no-member
self.partner.save()
self.assertEqual(Organization.objects.count(), 0)
......@@ -216,7 +216,7 @@ class CoursesApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, TestCas
api_data = self.mock_api()
if not partner_has_marketing_site:
self.partner.marketing_site_url_root = None
self.partner.save() # pylint: disable=no-member
self.partner.save()
self.assertEqual(Course.objects.count(), 0)
self.assertEqual(CourseRun.objects.count(), 0)
......@@ -266,7 +266,7 @@ class CoursesApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, TestCas
if not partner_has_marketing_site:
self.partner.marketing_site_url_root = None
self.partner.save() # pylint: disable=no-member
self.partner.save()
self.loader.ingest()
......
......@@ -134,7 +134,7 @@ class Subject(TranslatableModel, TimeStampedModel):
('partner', 'uuid'),
)
def validate_unique(self, *args, **kwargs):
def validate_unique(self, *args, **kwargs): # pylint: disable=arguments-differ
super(Subject, self).validate_unique(*args, **kwargs)
qs = Subject.objects.filter(partner=self.partner_id)
if qs.filter(translations__name=self.name).exclude(pk=self.pk).exists():
......@@ -171,7 +171,7 @@ class Topic(TranslatableModel, TimeStampedModel):
('partner', 'uuid'),
)
def validate_unique(self, *args, **kwargs):
def validate_unique(self, *args, **kwargs): # pylint: disable=arguments-differ
super(Topic, self).validate_unique(*args, **kwargs)
qs = Topic.objects.filter(partner=self.partner_id)
if qs.filter(translations__name=self.name).exclude(pk=self.pk).exists():
......@@ -285,7 +285,7 @@ class Person(TimeStampedModel):
def __str__(self):
return self.full_name
def save(self, *args, **kwargs):
def save(self, *args, **kwargs): # pylint: disable=arguments-differ
logger.info('Person saved UUID: %s', self.uuid, exc_info=True)
super(Person, self).save(*args, **kwargs)
......@@ -553,7 +553,7 @@ class CourseRun(TimeStampedModel):
None if the date is unknown or enrollable paid Seats are not available.
"""
seats = list(self._enrollable_paid_seats().order_by('-upgrade_deadline'))
if len(seats) == 0:
if not seats:
# Enrollable paid seats are not available for this CourseRun.
return None
......@@ -693,7 +693,7 @@ class CourseRun(TimeStampedModel):
@property
def programs(self):
return self.course.programs # pylint: disable=no-member
return self.course.programs
@property
def seat_types(self):
......@@ -755,7 +755,7 @@ class CourseRun(TimeStampedModel):
def __str__(self):
return '{key}: {title}'.format(key=self.key, title=self.title)
def save(self, *args, **kwargs):
def save(self, *args, **kwargs): # pylint: disable=arguments-differ
suppress_publication = kwargs.pop('suppress_publication', False)
is_publishable = (
self.course.partner.has_marketing_site and
......@@ -1170,9 +1170,9 @@ class Program(TimeStampedModel):
if add_seat:
course_map[course_uuid].append(seat)
for seat in seats_to_remove:
for removable_seat in seats_to_remove:
# Now remove the seats that should not be counted for calculation for program total
course_map[course_uuid].remove(seat)
course_map[course_uuid].remove(removable_seat)
for entitlement in self.entitlements:
course_uuid = entitlement.course.uuid
......@@ -1239,7 +1239,7 @@ class Program(TimeStampedModel):
def is_active(self):
return self.status == ProgramStatus.Active
def save(self, *args, **kwargs):
def save(self, *args, **kwargs): # pylint: disable=arguments-differ
is_publishable = (
self.partner.has_marketing_site and
waffle.switch_is_active('publish_program_to_marketing_site')
......
......@@ -107,7 +107,7 @@ class BaseMarketingSitePublisher:
if response.status_code == 200:
response_json = response.json()
if len(response_json['list']) > 0:
if response_json['list']:
return response.json()['list'][0]['nid']
else:
return None
......
......@@ -10,7 +10,7 @@ from course_discovery.apps.course_metadata.models import * # pylint: disable=wi
from course_discovery.apps.ietf_language_tags.models import LanguageTag
# pylint: disable=no-member, unused-argument
# pylint: disable=unused-argument
class AbstractMediaModelFactory(factory.DjangoModelFactory):
......
......@@ -13,9 +13,6 @@ from course_discovery.apps.course_metadata.tests.factories import (
from course_discovery.apps.publisher.tests import factories
# pylint: disable=no-member
@pytest.mark.django_db
class TestAutocomplete:
def assert_valid_query_result(self, client, path, query, expected_result):
......
......@@ -46,7 +46,7 @@ class DistinctCountsAggregateFacetSearchSerializer(AggregateFacetSearchSerialize
# data and extract the distinct counts.
# https://github.com/edx/course-discovery/blob/master/course_discovery/apps/api/serializers.py#L966
query_data = {}
for field, options in getattr(self.Meta, 'field_queries', {}).items(): # pylint: disable=no-member
for field, options in getattr(self.Meta, 'field_queries', {}).items():
# The query facet data is expected to be formatted as a dictionary with fields mapping to a two-tuple
# containing count and distinct count.
count, distinct_count = query_facet_counts.get(field, (0, 0))
......
......@@ -9,7 +9,7 @@ class DistinctCountsAggregateSearchViewSet(AggregateSearchViewSet):
# Custom serializer that includes distinct hit and facet counts.
facet_serializer_class = DistinctCountsAggregateFacetSearchSerializer
def get_queryset(self, *args, **kwargs):
def get_queryset(self, *args, **kwargs): # pylint: disable=arguments-differ
""" Return the base Queryset to use to build up the search query."""
queryset = super(DistinctCountsAggregateSearchViewSet, self).get_queryset(*args, **kwargs)
return DistinctCountsSearchQuerySet.from_queryset(queryset).with_distinct_counts('aggregation_key')
......@@ -116,7 +116,7 @@ class CourseRunSerializerTests(TestCase):
def test_validate_lms_course_id(self):
""" Verify that serializer raises error if 'lms_course_id' has invalid format. """
self.course_run.lms_course_id = 'invalid-course-id'
self.course_run.save() # pylint: disable=no-member
self.course_run.save()
serializer = self.serializer_class(self.course_run)
with self.assertRaises(ValidationError):
serializer.validate_lms_course_id(self.course_run.lms_course_id)
......@@ -124,7 +124,7 @@ class CourseRunSerializerTests(TestCase):
def test_validate_preview_url(self):
""" Verify that serializer raises error if 'preview_url' has invalid format. """
self.course_run.preview_url = 'invalid-preview-url'
self.course_run.save() # pylint: disable=no-member
self.course_run.save()
serializer = self.serializer_class(self.course_run)
with self.assertRaises(ValidationError):
serializer.validate_preview_url(self.course_run.preview_url)
......
......@@ -196,7 +196,7 @@ class CourseRunViewSetTests(APITestCase):
**common_seat_kwargs
)
# pylint: disable=unused-argument,too-many-statements
# pylint: disable=unused-argument
@responses.activate
@override_settings(PUBLISHER_UPGRADE_DEADLINE_DAYS=PUBLISHER_UPGRADE_DEADLINE_DAYS)
@mock.patch.object(Partner, 'access_token', return_value='JWT fake')
......
......@@ -50,7 +50,6 @@ class ImportCoursesCommandTests(TestCase):
call_command(self.command_name, *command_args)
# pylint: disable=no-member
@ddt.ddt
class ImportCoursesTests(TestCase):
def setUp(self):
......@@ -386,7 +385,6 @@ class CreateCoursesTests(TestCase):
)
# pylint: disable=no-member
@ddt.ddt
class UpdateCourseRunsTests(TestCase):
def setUp(self):
......
......@@ -142,7 +142,7 @@ def send_email_decline_preview(comment, course_run, preview_url):
)
email_msg.attach_alternative(html_content, 'text/html')
email_msg.send()
except Exception: # pylint: disable=broad-except
except Exception:
message = 'Failed to send email notifications for preview decline for course run [{id}].'.format(
id=course_run.id
)
......
......@@ -5,7 +5,6 @@ from django_comments.forms import CommentForm
from course_discovery.apps.publisher_comments.models import Comments, CommentTypeChoices
# pylint: disable=no-member
class CommentsForm(CommentForm):
modified = forms.DateTimeField(required=False, widget=forms.HiddenInput)
comment_type = forms.ChoiceField(
......
......@@ -19,7 +19,6 @@ class AdminTests(SiteMixin, TestCase):
def test_comment_detail_form(self):
""" Verify in admin panel comment detail form contain the custom modified field. """
# pylint: disable=no-member
resp = self.client.get(reverse('admin:publisher_comments_comments_change', args=(self.comment.id,)))
self.assertContains(resp, 'modified')
......
......@@ -181,7 +181,7 @@ class CommentsEmailTests(SiteMixin, TestCase):
self.assertIn(comment.comment, str(mail.outbox[0].body.strip()))
comment.comment = 'update the comment'
comment.save() # pylint: disable=no-member
comment.save()
subject = 'Comment updated: {title}'.format(title=self.course.title)
self.assertEqual(str(mail.outbox[1].subject), subject)
self.assertIn(comment.comment, str(mail.outbox[1].body.strip()), 'update the comment')
......@@ -195,7 +195,7 @@ class CommentsEmailTests(SiteMixin, TestCase):
)
comment = self.create_comment(content_object=self.course_run)
comment.comment = 'Update the comment'
comment.save() # pylint: disable=no-member
comment.save()
subject = 'Comment updated: {title} {start} - {pacing_type}'.format(
title=self.course_run.course.title,
......
......@@ -66,6 +66,6 @@ if settings.DEBUG: # pragma: no cover
# https://docs.djangoproject.com/en/1.10/howto/static-files/#serving-files-uploaded-by-a-user-during-development
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if os.environ.get('ENABLE_DJANGO_TOOLBAR', False):
import debug_toolbar # pylint: disable=wrong-import-order,wrong-import-position,import-error
import debug_toolbar
urlpatterns.append(url(r'^__debug__/', include(debug_toolbar.urls)))
......@@ -3,7 +3,7 @@
coverage==4.2
ddt==1.1.0
edx-lint==0.5.4
edx-lint==0.5.5
factory-boy==2.8.1
freezegun==0.3.7
isort==4.2.5
......
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