Python Requirements Update (#29516)
* chore: Updating Python Requirements * fix: fix pylint issues Co-authored-by: Mohammad Ahtasham ul Hassan <mohammad.ahtasham@arbisoft.com>
This commit is contained in:
committed by
GitHub
parent
5d5a11fc16
commit
bb20b17428
@@ -82,7 +82,7 @@ class CourseRunTeamSerializerMixin(serializers.Serializer): # lint-amnesty, pyl
|
||||
|
||||
def image_is_jpeg_or_png(value):
|
||||
content_type = value.content_type
|
||||
if content_type not in list(IMAGE_TYPES.keys()):
|
||||
if content_type not in list(IMAGE_TYPES.keys()): # lint-amnesty, pylint: disable=consider-iterating-dictionary
|
||||
raise serializers.ValidationError(
|
||||
f'Only JPEG and PNG image types are supported. {content_type} is not valid')
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ def validate_transcript_credentials(provider, **credentials):
|
||||
must_have_props = ['api_key', 'username']
|
||||
|
||||
missing = [
|
||||
must_have_prop for must_have_prop in must_have_props if must_have_prop not in list(credentials.keys())
|
||||
must_have_prop for must_have_prop in must_have_props if must_have_prop not in list(credentials.keys()) # lint-amnesty, pylint: disable=consider-iterating-dictionary
|
||||
]
|
||||
if missing:
|
||||
error_message = '{missing} must be specified.'.format(missing=' and '.join(missing))
|
||||
|
||||
@@ -285,7 +285,7 @@ def validate_transcript_preferences(provider, cielo24_fidelity, cielo24_turnarou
|
||||
|
||||
# validate transcription providers
|
||||
transcription_plans = get_3rd_party_transcription_plans()
|
||||
if provider in list(transcription_plans.keys()):
|
||||
if provider in list(transcription_plans.keys()): # lint-amnesty, pylint: disable=consider-iterating-dictionary
|
||||
|
||||
# Further validations for providers
|
||||
if provider == TranscriptProvider.CIELO24:
|
||||
|
||||
@@ -117,7 +117,7 @@ class TestCourseListing(ModuleStoreTestCase, MilestonesTestCaseMixin):
|
||||
CourseOverview.objects.filter(id=course_key).delete()
|
||||
|
||||
courses_list = list(get_course_enrollments(self.student, None, []))
|
||||
assert courses_list == []
|
||||
assert not courses_list
|
||||
|
||||
def test_course_listing_errored_deleted_courses(self):
|
||||
"""
|
||||
|
||||
@@ -68,4 +68,4 @@ class StubYouTubeServiceTest(unittest.TestCase): # lint-amnesty, pylint: disabl
|
||||
assert response.status_code == 200
|
||||
|
||||
# ensure that server config dict is empty after successful reset
|
||||
assert self.server.config == {}
|
||||
assert not self.server.config
|
||||
|
||||
@@ -82,7 +82,7 @@ class GetProviderUserStatesTestCase(TestCase):
|
||||
|
||||
def test_returns_empty_list_if_no_enabled_providers(self):
|
||||
assert not provider.Registry.enabled()
|
||||
assert [] == pipeline.get_provider_user_states(self.user)
|
||||
assert not pipeline.get_provider_user_states(self.user)
|
||||
|
||||
def test_state_not_returned_for_disabled_provider(self):
|
||||
disabled_provider = self.configure_google_provider(enabled=False)
|
||||
@@ -130,7 +130,7 @@ class GetProviderUserStatesTestCase(TestCase):
|
||||
|
||||
states = pipeline.get_provider_user_states(self.user)
|
||||
|
||||
assert [] == list(social_models.DjangoStorage.user.objects.all())
|
||||
assert not list(social_models.DjangoStorage.user.objects.all())
|
||||
assert 2 == len(states)
|
||||
|
||||
google_state = [state for state in states if state.provider.provider_id == google_provider.provider_id][0]
|
||||
|
||||
@@ -224,4 +224,4 @@ class RegistryTest(testutil.TestCase):
|
||||
def test_get_enabled_by_backend_name_returns_none_if_provider_not_enabled(self):
|
||||
google_provider = self.configure_google_provider(enabled=False)
|
||||
found = list(provider.Registry.get_enabled_by_backend_name(google_provider.backend_name))
|
||||
assert found == []
|
||||
assert not found
|
||||
|
||||
@@ -142,7 +142,7 @@ class MilestonesHelpersTestCase(ModuleStoreTestCase):
|
||||
course = CourseFactory()
|
||||
|
||||
required_content = milestones_helpers.get_required_content(course.id, AnonymousUser())
|
||||
assert required_content == []
|
||||
assert not required_content
|
||||
|
||||
# NOTE (CCB): The initial version of anonymous courseware access is very simple. We avoid accidentally
|
||||
# exposing locked content by simply avoiding anonymous access altogether for courses runs with milestones.
|
||||
|
||||
@@ -605,7 +605,7 @@ class TestCoachDashboard(CcxTestCase, LoginEnrollmentTestCase):
|
||||
enrollment = CourseEnrollmentFactory(course_id=self.course.id)
|
||||
student = enrollment.user
|
||||
outbox = self.get_outbox()
|
||||
assert outbox == []
|
||||
assert not outbox
|
||||
|
||||
url = reverse(
|
||||
view_name,
|
||||
@@ -687,7 +687,7 @@ class TestCoachDashboard(CcxTestCase, LoginEnrollmentTestCase):
|
||||
enrollment = CourseEnrollmentFactory(course_id=course_key)
|
||||
student = enrollment.user
|
||||
outbox = self.get_outbox()
|
||||
assert outbox == []
|
||||
assert not outbox
|
||||
|
||||
url = reverse(
|
||||
view_name,
|
||||
@@ -729,7 +729,7 @@ class TestCoachDashboard(CcxTestCase, LoginEnrollmentTestCase):
|
||||
ccx = self.make_ccx()
|
||||
course_key = CCXLocator.from_course_locator(self.course.id, ccx.id)
|
||||
outbox = self.get_outbox()
|
||||
assert outbox == []
|
||||
assert not outbox
|
||||
|
||||
url = reverse(
|
||||
view_name,
|
||||
@@ -777,7 +777,7 @@ class TestCoachDashboard(CcxTestCase, LoginEnrollmentTestCase):
|
||||
course_key = CCXLocator.from_course_locator(course.id, ccx.id)
|
||||
outbox = self.get_outbox()
|
||||
CourseEnrollmentAllowed(course_id=course_key, email=identifier)
|
||||
assert outbox == []
|
||||
assert not outbox
|
||||
|
||||
url = reverse(
|
||||
view_name,
|
||||
|
||||
@@ -515,7 +515,7 @@ class CertificateGetTests(SharedModuleStoreTestCase):
|
||||
"""
|
||||
Test the case when there are no certificates for a user.
|
||||
"""
|
||||
assert get_certificates_for_user(self.student_no_cert.username) == []
|
||||
assert not get_certificates_for_user(self.student_no_cert.username)
|
||||
|
||||
@patch.dict(settings.FEATURES, {'CERTIFICATES_HTML_VIEW': True})
|
||||
def test_get_web_certificate_url(self):
|
||||
|
||||
@@ -79,7 +79,7 @@ class mock_ecommerce_api_endpoint:
|
||||
if self.expect_called is None:
|
||||
called_if_expected = True
|
||||
else:
|
||||
called_if_expected = self.expect_called == (httpretty.last_request().headers != {})
|
||||
called_if_expected = self.expect_called == (bool(httpretty.last_request().headers))
|
||||
httpretty.disable()
|
||||
|
||||
if self.reset_on_exit:
|
||||
|
||||
@@ -139,7 +139,7 @@ class CoursesTest(ModuleStoreTestCase):
|
||||
|
||||
# Request filtering for an org distinct from the designated org.
|
||||
no_courses = get_courses(user, org=primary)
|
||||
assert list(no_courses) == []
|
||||
assert not list(no_courses)
|
||||
|
||||
# Request filtering for an org matching the designated org.
|
||||
site_courses = get_courses(user, org=alternate)
|
||||
|
||||
@@ -173,7 +173,7 @@ def preprocess_collection(user, course, collection):
|
||||
|
||||
model.update(update)
|
||||
usage_id = model["usage_id"]
|
||||
if usage_id in list(cache.keys()):
|
||||
if usage_id in list(cache.keys()): # lint-amnesty, pylint: disable=consider-iterating-dictionary
|
||||
model.update(cache[usage_id])
|
||||
filtered_collection.append(model)
|
||||
continue
|
||||
@@ -202,7 +202,7 @@ def preprocess_collection(user, course, collection):
|
||||
if not section:
|
||||
log.debug("Section not found: %s", usage_key)
|
||||
continue
|
||||
if section.location in list(cache.keys()):
|
||||
if section.location in list(cache.keys()): # lint-amnesty, pylint: disable=consider-iterating-dictionary
|
||||
usage_context = cache[section.location]
|
||||
usage_context.update({
|
||||
"unit": get_module_context(course, unit),
|
||||
@@ -216,7 +216,7 @@ def preprocess_collection(user, course, collection):
|
||||
if not chapter:
|
||||
log.debug("Chapter not found: %s", usage_key)
|
||||
continue
|
||||
if chapter.location in list(cache.keys()):
|
||||
if chapter.location in list(cache.keys()): # lint-amnesty, pylint: disable=consider-iterating-dictionary
|
||||
usage_context = cache[chapter.location]
|
||||
usage_context.update({
|
||||
"unit": get_module_context(course, unit),
|
||||
@@ -349,7 +349,7 @@ def get_notes(request, course, page=DEFAULT_PAGE, page_size=DEFAULT_PAGE_SIZE, t
|
||||
|
||||
# Verify response dict structure
|
||||
expected_keys = ['total', 'rows', 'num_pages', 'start', 'next', 'previous', 'current_page']
|
||||
keys = list(collection.keys())
|
||||
keys = list(collection.keys()) # lint-amnesty, pylint: disable=consider-iterating-dictionary
|
||||
if not keys or not all(key in expected_keys for key in keys):
|
||||
log.error("Incorrect data received from notes api: collection_data=%s", str(collection))
|
||||
raise EdxNotesParseError(_("Incorrect data received from notes api."))
|
||||
|
||||
@@ -63,7 +63,7 @@ class ExperimentUtilsTests(ModuleStoreTestCase, TestCase):
|
||||
|
||||
def test_unenrolled_courses_for_empty_courses(self):
|
||||
unenrolled_courses = get_unenrolled_courses([], [])
|
||||
assert [] == unenrolled_courses
|
||||
assert not unenrolled_courses
|
||||
|
||||
def test_unenrolled_courses_for_single_course(self):
|
||||
course = {'key': 'UQx+ENGY1x'}
|
||||
|
||||
@@ -279,7 +279,7 @@ class TestGradeIteration(SharedModuleStoreTestCase):
|
||||
iterator, but it shouldn't error.
|
||||
"""
|
||||
grade_results = list(CourseGradeFactory().iter([], self.course))
|
||||
assert grade_results == []
|
||||
assert not grade_results
|
||||
|
||||
def test_all_empty_grades(self):
|
||||
"""
|
||||
|
||||
@@ -70,8 +70,8 @@ class TestAnalyticsFormatDictlist(TestCase):
|
||||
|
||||
def test_format_dictlist_empty(self):
|
||||
header, datarows = format_dictlist([], [])
|
||||
assert header == []
|
||||
assert datarows == []
|
||||
assert not header
|
||||
assert not datarows
|
||||
|
||||
def test_create_csv_response(self):
|
||||
header = ['Name', 'Email']
|
||||
|
||||
@@ -314,7 +314,7 @@ class TestLinkProgramEnrollments(TestLinkProgramEnrollmentsMixin, TestCase):
|
||||
}
|
||||
)
|
||||
|
||||
assert errors == {}
|
||||
assert not errors
|
||||
self._assert_program_enrollment(self.user_2, self.program, '0001')
|
||||
self._assert_no_program_enrollment(self.user_1, self.program)
|
||||
# assert that all of user_1's course enrollments as part of the program
|
||||
|
||||
@@ -77,7 +77,7 @@ def validate_and_link_program_enrollments(program_uuid_string, linkage_text):
|
||||
(item.get('external_key') or '').strip(): (item['username'] or '').strip()
|
||||
for item in reader
|
||||
}
|
||||
if not (all(ext_key_to_username.keys()) and all(ext_key_to_username.values())):
|
||||
if not (all(ext_key_to_username.keys()) and all(ext_key_to_username.values())): # lint-amnesty, pylint: disable=consider-iterating-dictionary
|
||||
return [], [
|
||||
"All linking lines must be in the format 'external_user_key,lms_username'"
|
||||
]
|
||||
@@ -87,7 +87,7 @@ def validate_and_link_program_enrollments(program_uuid_string, linkage_text):
|
||||
successes = [
|
||||
str(item)
|
||||
for item in ext_key_to_username.items()
|
||||
if item[0] not in link_errors.keys()
|
||||
if item[0] not in link_errors.keys() # lint-amnesty, pylint: disable=consider-iterating-dictionary
|
||||
]
|
||||
errors = [message for message in link_errors.values()] # lint-amnesty, pylint: disable=unnecessary-comprehension
|
||||
return successes, errors
|
||||
|
||||
@@ -906,7 +906,7 @@ class TestPayAndVerifyView(UrlResetMixin, ModuleStoreTestCase, XssTestMixin, Tes
|
||||
# ensure the mock api call was made. NOTE: the following line
|
||||
# approximates the check - if the headers were empty it means
|
||||
# there was no last request.
|
||||
assert httpretty.last_request().headers != {}
|
||||
assert httpretty.last_request().headers
|
||||
return response
|
||||
|
||||
def _assert_displayed_mode(self, response, expected_mode):
|
||||
|
||||
@@ -409,7 +409,7 @@ class BookmarkModelTests(BookmarksTestsBase):
|
||||
# Block does not exist
|
||||
usage_key = UsageKey.from_string('i4x://edX/apis/html/interactive')
|
||||
usage_key.replace(course_key=self.course.id)
|
||||
assert Bookmark.get_path(usage_key) == []
|
||||
assert not Bookmark.get_path(usage_key)
|
||||
|
||||
# Block is an orphan
|
||||
self.other_sequential_1.children = []
|
||||
|
||||
@@ -663,7 +663,7 @@ class TestSessionEntitlement(CatalogIntegrationMixin, TestCase):
|
||||
)
|
||||
|
||||
session_entitlements = get_visible_sessions_for_entitlement(entitlement)
|
||||
assert session_entitlements == []
|
||||
assert not session_entitlements
|
||||
|
||||
|
||||
@skip_unless_lms
|
||||
@@ -780,10 +780,10 @@ class TestProgramCourseRunCrawling(TestCase):
|
||||
program = {
|
||||
'title': 'notice that I do not have a curriculum',
|
||||
}
|
||||
assert [] == child_programs(program)
|
||||
assert not child_programs(program)
|
||||
|
||||
def test_child_programs_no_children(self):
|
||||
assert [] == child_programs(self.empty_program)
|
||||
assert not child_programs(self.empty_program)
|
||||
|
||||
def test_child_programs_one_child(self):
|
||||
assert [self.grandchild_1] == child_programs(self.simple_program)
|
||||
|
||||
@@ -126,7 +126,7 @@ class TestSimulatePublish(SharedModuleStoreTestCase):
|
||||
assert self.course_key_1 in self.received_1
|
||||
assert self.course_key_2 in self.received_1
|
||||
assert self.course_key_3 in self.received_1
|
||||
assert self.received_2 == []
|
||||
assert not self.received_2
|
||||
|
||||
def test_course_overviews(self):
|
||||
"""Integration test with CourseOverviews."""
|
||||
@@ -140,8 +140,8 @@ class TestSimulatePublish(SharedModuleStoreTestCase):
|
||||
)
|
||||
)
|
||||
assert CourseOverview.objects.all().count() == 3
|
||||
assert self.received_1 == []
|
||||
assert self.received_2 == []
|
||||
assert not self.received_1
|
||||
assert not self.received_2
|
||||
|
||||
def sample_receiver_1(self, sender, course_key, **kwargs): # pylint: disable=unused-argument
|
||||
"""Custom receiver for testing."""
|
||||
|
||||
@@ -488,7 +488,7 @@ class TestCohorts(ModuleStoreTestCase):
|
||||
"""
|
||||
course = modulestore().get_course(self.toy_course_key)
|
||||
config_course_cohorts(course, is_cohorted=True)
|
||||
assert [] == cohorts.get_course_cohorts(course)
|
||||
assert not cohorts.get_course_cohorts(course)
|
||||
|
||||
def test_get_course_cohorts(self):
|
||||
"""
|
||||
|
||||
@@ -747,7 +747,7 @@ class CreditRequirementApiTests(CreditApiTestBase):
|
||||
# Since the requirement hasn't been published yet, it won't show
|
||||
# up in the list of requirements.
|
||||
req_status = api.get_credit_requirement_status(self.course_key, username, namespace="grade", name="grade")
|
||||
assert req_status == []
|
||||
assert not req_status
|
||||
|
||||
# Now add the requirements, simulating what happens when a course is published.
|
||||
requirements = [
|
||||
|
||||
@@ -212,7 +212,7 @@ class TestUserPreferenceMiddleware(CacheIsolationTestCase):
|
||||
result = self.middleware.process_response(self.request, response)
|
||||
|
||||
assert result is response
|
||||
assert response.mock_calls == []
|
||||
assert not response.mock_calls
|
||||
|
||||
def test_preference_update_noop(self):
|
||||
self.request.COOKIES[settings.LANGUAGE_COOKIE_NAME] = 'es'
|
||||
|
||||
@@ -105,9 +105,9 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
|
||||
meter = ProgramProgressMeter(self.site, self.user)
|
||||
|
||||
assert meter.engaged_programs == []
|
||||
assert not meter.engaged_programs
|
||||
self._assert_progress(meter)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
def test_enrollments_but_no_programs(self, mock_get_programs):
|
||||
"""Verify behavior when enrollments exist, but no matching programs do."""
|
||||
@@ -117,9 +117,9 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
self._create_enrollments(course_run_id)
|
||||
meter = ProgramProgressMeter(self.site, self.user)
|
||||
|
||||
assert meter.engaged_programs == []
|
||||
assert not meter.engaged_programs
|
||||
self._assert_progress(meter)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
def test_entitlements_but_no_programs(self, mock_get_programs):
|
||||
""" Verify engaged_programs is empty when entitlements exist, but no matching programs do. """
|
||||
@@ -128,7 +128,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
self._create_entitlements(uuid.uuid4())
|
||||
meter = ProgramProgressMeter(self.site, self.user)
|
||||
|
||||
assert meter.engaged_programs == []
|
||||
assert not meter.engaged_programs
|
||||
|
||||
def test_single_program_enrollment(self, mock_get_programs):
|
||||
"""
|
||||
@@ -158,7 +158,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
meter,
|
||||
ProgressFactory(uuid=program['uuid'], in_progress=1)
|
||||
)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
def test_single_program_entitlement(self, mock_get_programs):
|
||||
"""
|
||||
@@ -375,7 +375,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
meter,
|
||||
*(ProgressFactory(uuid=program['uuid'], in_progress=1) for program in programs)
|
||||
)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
def test_multiple_program_entitlement(self, mock_get_programs):
|
||||
"""
|
||||
@@ -443,7 +443,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
meter,
|
||||
*(ProgressFactory(uuid=program['uuid'], in_progress=1) for program in programs)
|
||||
)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
def test_shared_entitlement_engagement(self, mock_get_programs):
|
||||
"""
|
||||
@@ -522,7 +522,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
# No enrollments, no programs in progress.
|
||||
meter = ProgramProgressMeter(self.site, self.user)
|
||||
self._assert_progress(meter)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
# One enrollment, one program in progress.
|
||||
self._create_enrollments(first_course_run_key)
|
||||
@@ -532,7 +532,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
meter,
|
||||
ProgressFactory(uuid=program_uuid, in_progress=1, not_started=2)
|
||||
)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
# 3 enrollments, 3 courses in progress.
|
||||
self._create_enrollments(second_course_run_key)
|
||||
@@ -545,7 +545,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
in_progress=3,
|
||||
)
|
||||
)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
# One valid certificate earned, one course complete.
|
||||
self._create_certificates(first_course_run_key, mode=MODES.verified)
|
||||
@@ -558,7 +558,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
in_progress=2,
|
||||
)
|
||||
)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
# Invalid certificate earned, still one course to complete. (invalid because mode doesn't match the course)
|
||||
second_cert = self._create_certificates(second_course_run_key, mode=MODES.honor)[0]
|
||||
@@ -572,7 +572,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
in_progress=2,
|
||||
)
|
||||
)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
# Second valid certificate obtained, 2 courses complete.
|
||||
second_cert.mode = MODES.verified
|
||||
@@ -586,7 +586,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
in_progress=1,
|
||||
)
|
||||
)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
# 3 certs, 1 unavailable, Program available in the future
|
||||
self._create_certificates(third_course_run_key, mode=MODES.verified)
|
||||
@@ -770,7 +770,7 @@ class TestProgramProgressMeter(ModuleStoreTestCase):
|
||||
|
||||
# Verify that the test program is not complete.
|
||||
meter = ProgramProgressMeter(self.site, self.user)
|
||||
assert list(meter.completed_programs_with_available_dates.keys()) == []
|
||||
assert not list(meter.completed_programs_with_available_dates.keys())
|
||||
|
||||
# Grant a 'no-id-professional' certificate for one of the course runs,
|
||||
# thereby completing the program.
|
||||
|
||||
@@ -211,8 +211,8 @@ class TestDeactivateLogout(RetirementTestCase):
|
||||
updated_user = User.objects.get(id=self.test_user.id)
|
||||
assert get_retired_email_by_email(self.test_user.email) == updated_user.email
|
||||
assert not updated_user.has_usable_password()
|
||||
assert list(UserSocialAuth.objects.filter(user=self.test_user)) == []
|
||||
assert list(Registration.objects.filter(user=self.test_user)) == []
|
||||
assert not list(UserSocialAuth.objects.filter(user=self.test_user))
|
||||
assert not list(Registration.objects.filter(user=self.test_user))
|
||||
assert len(UserRetirementStatus.objects.filter(user_id=self.test_user.id)) == 1
|
||||
# these retirement utils are tested elsewhere; just make sure we called them
|
||||
mock_retire_dot.assert_called_with(self.test_user)
|
||||
|
||||
@@ -197,7 +197,7 @@ class AccountSettingsViewTest(ThirdPartyAuthTestMixin, SiteMixin, ProgramsApiCon
|
||||
with mock_get_orders(exception=exceptions.HttpNotFoundError):
|
||||
order_detail = get_user_orders(self.user)
|
||||
|
||||
assert order_detail == []
|
||||
assert not order_detail
|
||||
|
||||
def test_incomplete_order_detail(self):
|
||||
response = {
|
||||
@@ -215,7 +215,7 @@ class AccountSettingsViewTest(ThirdPartyAuthTestMixin, SiteMixin, ProgramsApiCon
|
||||
with mock_get_orders(response=response):
|
||||
order_detail = get_user_orders(self.user)
|
||||
|
||||
assert order_detail == []
|
||||
assert not order_detail
|
||||
|
||||
def test_order_history_with_no_product(self):
|
||||
response = {
|
||||
|
||||
@@ -395,7 +395,7 @@ class TestEnterpriseApi(EnterpriseServiceMockMixin, CacheIsolationTestCase):
|
||||
assert request_mock.session['enterprise_customer']['uuid'] == str(enterprise_customer_uuid)
|
||||
|
||||
def test_get_enterprise_learner_data_from_db_no_data(self):
|
||||
assert [] == get_enterprise_learner_data_from_db(self.user)
|
||||
assert not get_enterprise_learner_data_from_db(self.user)
|
||||
|
||||
def test_get_enterprise_learner_data_from_db(self):
|
||||
enterprise_customer_user = EnterpriseCustomerUserFactory(user_id=self.user.id) # lint-amnesty, pylint: disable=unused-variable
|
||||
|
||||
@@ -73,7 +73,7 @@ random2==1.0.1
|
||||
# via -r requirements/edx-sandbox/py38.in
|
||||
regex==2021.11.10
|
||||
# via nltk
|
||||
scipy==1.7.2
|
||||
scipy==1.7.3
|
||||
# via
|
||||
# -r requirements/edx-sandbox/py38.in
|
||||
# chem
|
||||
|
||||
@@ -112,7 +112,7 @@ cffi==1.15.0
|
||||
# via cryptography
|
||||
chardet==4.0.0
|
||||
# via pysrt
|
||||
charset-normalizer==2.0.7
|
||||
charset-normalizer==2.0.9
|
||||
# via
|
||||
# -r requirements/edx/paver.txt
|
||||
# aiohttp
|
||||
@@ -246,7 +246,7 @@ django-config-models==2.2.0
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# lti-consumer-xblock
|
||||
django-cors-headers==3.10.0
|
||||
django-cors-headers==3.10.1
|
||||
# via -r requirements/edx/base.in
|
||||
django-countries==7.2.1
|
||||
# via
|
||||
@@ -743,7 +743,7 @@ pycountry==20.7.3
|
||||
# via -r requirements/edx/base.in
|
||||
pycparser==2.21
|
||||
# via cffi
|
||||
pycryptodomex==3.11.0
|
||||
pycryptodomex==3.12.0
|
||||
# via
|
||||
# -r requirements/edx/base.in
|
||||
# edx-proctoring
|
||||
@@ -770,7 +770,7 @@ pyjwt[crypto]==2.3.0
|
||||
# social-auth-core
|
||||
pylatexenc==2.10
|
||||
# via olxcleaner
|
||||
pylti1p3==1.9.1
|
||||
pylti1p3==1.10.0
|
||||
# via -r requirements/edx/base.in
|
||||
pymongo==3.10.1
|
||||
# via
|
||||
@@ -814,7 +814,7 @@ python-slugify==4.0.1
|
||||
# via
|
||||
# -c requirements/edx/../constraints.txt
|
||||
# code-annotations
|
||||
python-swiftclient==3.12.0
|
||||
python-swiftclient==3.13.0
|
||||
# via ora2
|
||||
python3-openid==3.2.0 ; python_version >= "3"
|
||||
# via
|
||||
@@ -897,7 +897,7 @@ s3transfer==0.1.13
|
||||
# via boto3
|
||||
sailthru-client==2.2.3
|
||||
# via edx-ace
|
||||
scipy==1.7.2
|
||||
scipy==1.7.3
|
||||
# via
|
||||
# chem
|
||||
# openedx-calc
|
||||
@@ -996,7 +996,7 @@ text-unidecode==1.3
|
||||
# via python-slugify
|
||||
tqdm==4.62.3
|
||||
# via nltk
|
||||
typing-extensions==4.0.0
|
||||
typing-extensions==4.0.1
|
||||
# via async-timeout
|
||||
unicodecsv==0.14.1
|
||||
# via
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# make upgrade
|
||||
#
|
||||
coverage==6.1.2
|
||||
coverage==6.2
|
||||
# via -r requirements/edx/coverage.in
|
||||
diff-cover==4.0.0
|
||||
# via
|
||||
|
||||
@@ -67,7 +67,7 @@ asgiref==3.4.1
|
||||
# -r requirements/edx/testing.txt
|
||||
# django
|
||||
# uvicorn
|
||||
astroid==2.8.6
|
||||
astroid==2.9.0
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# pylint
|
||||
@@ -157,7 +157,7 @@ chardet==4.0.0
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# pysrt
|
||||
charset-normalizer==2.0.7
|
||||
charset-normalizer==2.0.9
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# aiohttp
|
||||
@@ -199,7 +199,7 @@ coreschema==0.0.4
|
||||
# -r requirements/edx/testing.txt
|
||||
# coreapi
|
||||
# drf-yasg
|
||||
coverage[toml]==6.1.2
|
||||
coverage[toml]==6.2
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# pytest-cov
|
||||
@@ -333,7 +333,7 @@ django-config-models==2.2.0
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# lti-consumer-xblock
|
||||
django-cors-headers==3.10.0
|
||||
django-cors-headers==3.10.1
|
||||
# via -r requirements/edx/testing.txt
|
||||
django-countries==7.2.1
|
||||
# via
|
||||
@@ -644,7 +644,7 @@ execnet==1.9.0
|
||||
# pytest-xdist
|
||||
factory-boy==3.2.1
|
||||
# via -r requirements/edx/testing.txt
|
||||
faker==9.8.3
|
||||
faker==9.9.0
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# factory-boy
|
||||
@@ -873,7 +873,7 @@ mccabe==0.6.1
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# pylint
|
||||
mistune==0.8.4
|
||||
mistune==2.0.0
|
||||
# via m2r
|
||||
mock==4.0.3
|
||||
# via
|
||||
@@ -1019,7 +1019,7 @@ pycparser==2.21
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# cffi
|
||||
pycryptodomex==3.11.0
|
||||
pycryptodomex==3.12.0
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# edx-proctoring
|
||||
@@ -1054,7 +1054,7 @@ pylatexenc==2.10
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# olxcleaner
|
||||
pylint==2.11.1
|
||||
pylint==2.12.2
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# edx-lint
|
||||
@@ -1077,7 +1077,7 @@ pylint-plugin-utils==0.6
|
||||
# pylint-django
|
||||
pylint-pytest==0.3.0
|
||||
# via -r requirements/edx/testing.txt
|
||||
pylti1p3==1.9.1
|
||||
pylti1p3==1.10.0
|
||||
# via -r requirements/edx/testing.txt
|
||||
pymongo==3.10.1
|
||||
# via
|
||||
@@ -1119,7 +1119,7 @@ pytest-attrib==0.1.3
|
||||
# via -r requirements/edx/testing.txt
|
||||
pytest-cov==3.0.0
|
||||
# via -r requirements/edx/testing.txt
|
||||
pytest-django==4.4.0
|
||||
pytest-django==4.5.1
|
||||
# via -r requirements/edx/testing.txt
|
||||
pytest-forked==1.3.0
|
||||
# via
|
||||
@@ -1131,7 +1131,7 @@ pytest-metadata==1.8.0
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# pytest-json-report
|
||||
pytest-randomly==3.10.2
|
||||
pytest-randomly==3.10.3
|
||||
# via -r requirements/edx/testing.txt
|
||||
pytest-xdist[psutil]==2.4.0
|
||||
# via -r requirements/edx/testing.txt
|
||||
@@ -1161,7 +1161,7 @@ python-slugify==4.0.1
|
||||
# -r requirements/edx/testing.txt
|
||||
# code-annotations
|
||||
# transifex-client
|
||||
python-swiftclient==3.12.0
|
||||
python-swiftclient==3.13.0
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# ora2
|
||||
@@ -1262,7 +1262,7 @@ sailthru-client==2.2.3
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# edx-ace
|
||||
scipy==1.7.2
|
||||
scipy==1.7.3
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# chem
|
||||
@@ -1362,7 +1362,7 @@ soupsieve==2.3.1
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# beautifulsoup4
|
||||
sphinx==4.3.0
|
||||
sphinx==4.3.1
|
||||
# via
|
||||
# edx-sphinx-theme
|
||||
# sphinxcontrib-httpdomain
|
||||
@@ -1449,7 +1449,7 @@ tqdm==4.62.3
|
||||
# nltk
|
||||
transifex-client==0.14.3
|
||||
# via -r requirements/edx/testing.txt
|
||||
typing-extensions==4.0.0
|
||||
typing-extensions==4.0.1
|
||||
# via
|
||||
# -r requirements/edx/testing.txt
|
||||
# astroid
|
||||
|
||||
@@ -10,7 +10,7 @@ babel==2.9.1
|
||||
# via sphinx
|
||||
certifi==2021.10.8
|
||||
# via requests
|
||||
charset-normalizer==2.0.7
|
||||
charset-normalizer==2.0.9
|
||||
# via requests
|
||||
click==7.1.2
|
||||
# via
|
||||
@@ -62,7 +62,7 @@ smmap==5.0.0
|
||||
# via gitdb
|
||||
snowballstemmer==2.2.0
|
||||
# via sphinx
|
||||
sphinx==4.3.0
|
||||
sphinx==4.3.1
|
||||
# via
|
||||
# -r requirements/edx/doc.in
|
||||
# edx-sphinx-theme
|
||||
@@ -82,7 +82,7 @@ stevedore==3.5.0
|
||||
# via code-annotations
|
||||
text-unidecode==1.3
|
||||
# via python-slugify
|
||||
typing-extensions==4.0.0
|
||||
typing-extensions==4.0.1
|
||||
# via gitpython
|
||||
urllib3==1.26.7
|
||||
# via requests
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
certifi==2021.10.8
|
||||
# via requests
|
||||
charset-normalizer==2.0.7
|
||||
charset-normalizer==2.0.9
|
||||
# via requests
|
||||
edx-opaque-keys==2.2.2
|
||||
# via -r requirements/edx/paver.in
|
||||
|
||||
@@ -63,7 +63,7 @@ asgiref==3.4.1
|
||||
# -r requirements/edx/base.txt
|
||||
# django
|
||||
# uvicorn
|
||||
astroid==2.8.6
|
||||
astroid==2.9.0
|
||||
# via
|
||||
# pylint
|
||||
# pylint-celery
|
||||
@@ -150,7 +150,7 @@ chardet==4.0.0
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# pysrt
|
||||
charset-normalizer==2.0.7
|
||||
charset-normalizer==2.0.9
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# aiohttp
|
||||
@@ -188,7 +188,7 @@ coreschema==0.0.4
|
||||
# -r requirements/edx/base.txt
|
||||
# coreapi
|
||||
# drf-yasg
|
||||
coverage[toml]==6.1.2
|
||||
coverage[toml]==6.2
|
||||
# via
|
||||
# -r requirements/edx/coverage.txt
|
||||
# pytest-cov
|
||||
@@ -319,7 +319,7 @@ django-config-models==2.2.0
|
||||
# edx-enterprise
|
||||
# edx-name-affirmation
|
||||
# lti-consumer-xblock
|
||||
django-cors-headers==3.10.0
|
||||
django-cors-headers==3.10.1
|
||||
# via -r requirements/edx/base.txt
|
||||
django-countries==7.2.1
|
||||
# via
|
||||
@@ -623,7 +623,7 @@ execnet==1.9.0
|
||||
# via pytest-xdist
|
||||
factory-boy==3.2.1
|
||||
# via -r requirements/edx/testing.in
|
||||
faker==9.8.3
|
||||
faker==9.9.0
|
||||
# via factory-boy
|
||||
fastapi==0.70.0
|
||||
# via pact-python
|
||||
@@ -960,7 +960,7 @@ pycparser==2.21
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# cffi
|
||||
pycryptodomex==3.11.0
|
||||
pycryptodomex==3.12.0
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# edx-proctoring
|
||||
@@ -993,7 +993,7 @@ pylatexenc==2.10
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# olxcleaner
|
||||
pylint==2.11.1
|
||||
pylint==2.12.2
|
||||
# via
|
||||
# edx-lint
|
||||
# pylint-celery
|
||||
@@ -1010,7 +1010,7 @@ pylint-plugin-utils==0.6
|
||||
# pylint-django
|
||||
pylint-pytest==0.3.0
|
||||
# via -r requirements/edx/testing.in
|
||||
pylti1p3==1.9.1
|
||||
pylti1p3==1.10.0
|
||||
# via -r requirements/edx/base.txt
|
||||
pymongo==3.10.1
|
||||
# via
|
||||
@@ -1050,7 +1050,7 @@ pytest-attrib==0.1.3
|
||||
# via -r requirements/edx/testing.in
|
||||
pytest-cov==3.0.0
|
||||
# via -r requirements/edx/testing.in
|
||||
pytest-django==4.4.0
|
||||
pytest-django==4.5.1
|
||||
# via -r requirements/edx/testing.in
|
||||
pytest-forked==1.3.0
|
||||
# via pytest-xdist
|
||||
@@ -1060,7 +1060,7 @@ pytest-metadata==1.8.0
|
||||
# via
|
||||
# -r requirements/edx/testing.in
|
||||
# pytest-json-report
|
||||
pytest-randomly==3.10.2
|
||||
pytest-randomly==3.10.3
|
||||
# via -r requirements/edx/testing.in
|
||||
pytest-xdist[psutil]==2.4.0
|
||||
# via -r requirements/edx/testing.in
|
||||
@@ -1090,7 +1090,7 @@ python-slugify==4.0.1
|
||||
# -r requirements/edx/base.txt
|
||||
# code-annotations
|
||||
# transifex-client
|
||||
python-swiftclient==3.12.0
|
||||
python-swiftclient==3.13.0
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# ora2
|
||||
@@ -1187,7 +1187,7 @@ sailthru-client==2.2.3
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# edx-ace
|
||||
scipy==1.7.2
|
||||
scipy==1.7.3
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# chem
|
||||
@@ -1337,7 +1337,7 @@ tqdm==4.62.3
|
||||
# nltk
|
||||
transifex-client==0.14.3
|
||||
# via -r requirements/edx/testing.in
|
||||
typing-extensions==4.0.0
|
||||
typing-extensions==4.0.1
|
||||
# via
|
||||
# -r requirements/edx/base.txt
|
||||
# astroid
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
certifi==2021.10.8
|
||||
# via requests
|
||||
charset-normalizer==2.0.7
|
||||
charset-normalizer==2.0.9
|
||||
# via requests
|
||||
idna==3.3
|
||||
# via requests
|
||||
|
||||
Reference in New Issue
Block a user