Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PERF-332] Reduce volume test errors #111

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from typing import Dict
from edfi_performance_test.api.client.ed_fi_api_client import EdFiAPIClient
from edfi_performance_test.api.client.class_period import ClassPeriodClient
from edfi_performance_test.api.client.school import SchoolClient


class BellScheduleClient(EdFiAPIClient):
Expand All @@ -14,9 +15,12 @@ class BellScheduleClient(EdFiAPIClient):
dependencies: Dict = {ClassPeriodClient: {}}

def create_with_dependencies(self, **kwargs):
school_id = kwargs.pop("schoolId", SchoolClient.shared_elementary_school_id())

# Create new class period
class_period_reference = self.class_period_client.create_with_dependencies()

if(class_period_reference is None or class_period_reference["resource_id"] is None):
return
# Create bell schedule
return self.create_using_dependencies(
class_period_reference,
Expand All @@ -25,5 +29,6 @@ def create_with_dependencies(self, **kwargs):
][
"classPeriodName"
],
classPeriods__0__classPeriodReference__schoolId=school_id,
**kwargs
)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from typing import Dict
from edfi_performance_test.api.client.ed_fi_api_client import EdFiAPIClient
from edfi_performance_test.api.client.school import SchoolClient
from edfi_performance_test.factories.utils import RandomSuffixAttribute


class CalendarDateClient(EdFiAPIClient):
Expand All @@ -18,13 +17,12 @@ class CalendarDateClient(EdFiAPIClient):

def create_with_dependencies(self, **kwargs):
school_id = kwargs.pop("schoolId", SchoolClient.shared_elementary_school_id())
custom_calendar_code = kwargs.pop(
"calendarCode", RandomSuffixAttribute("107SS111111")
)
# Create a calendar
calendar_reference = self.calendar_client.create_with_dependencies(
schoolReference__schoolId=school_id, calendarCode=custom_calendar_code
schoolReference__schoolId=school_id
)
if(calendar_reference is None or calendar_reference["resource_id"] is None):
return

# Create first calendar date
return self.create_using_dependencies(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ class CommunityProviderClient(EdFiAPIClient):

def create_with_dependencies(self, **kwargs):
org_reference = self.org_client.create_with_dependencies()
if(org_reference is None or org_reference["resource_id"] is None):
return

return self.create_using_dependencies(
org_reference,
Expand All @@ -42,6 +44,8 @@ class CommunityProviderLicenseClient(EdFiAPIClient):

def create_with_dependencies(self, **kwargs):
provider_reference = self.provider_client.create_with_dependencies()
if(provider_reference is None or provider_reference["resource_id"] is None):
return

return self.create_using_dependencies(
provider_reference,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ def create_with_dependencies(self, **kwargs):
schoolId=school_id
)

if(record_reference is None or record_reference["resource_id"] is None):
return

# Create course transcript
return self.create_using_dependencies(
record_reference,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,22 @@ class CourseOfferingClient(EdFiAPIClient):
def create_with_dependencies(self, **kwargs):
school_id = kwargs.pop("schoolId", SchoolClient.shared_elementary_school_id())
school_year = kwargs.get("schoolYear", 2014)
course_code = kwargs.pop("courseCode", "ELA-01")
session_reference = self.session_client.create_with_dependencies(
schoolId=school_id, schoolYear=school_year
)

if(session_reference is None or session_reference["resource_id"] is None):
return

return self.create_using_dependencies(
session_reference,
sessionReference__schoolId=school_id,
sessionReference__schoolYear=school_year,
sessionReference__sessionName=session_reference["attributes"][
"sessionName"
],
courseReference_courseCode=course_code,
courseReference_educationOrganizationId=school_id,
**kwargs
)
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ def create_with_dependencies(self, **kwargs):

# Create staff
staff_reference = self.staff_client.create_with_dependencies(schoolId=school_id)
if(staff_reference is None or staff_reference["resource_id"] is None):
return

# Create discipline incident
return self.create_using_dependencies(
Expand All @@ -48,6 +50,8 @@ def create_with_dependencies(self, **kwargs):
school_id = kwargs.pop("schoolId", SchoolClient.shared_elementary_school_id())

assoc_reference = self.assoc_client.create_with_dependencies(schoolId=school_id)
if(assoc_reference is None or assoc_reference["resource_id"] is None):
return

# Create discipline action
return self.create_using_dependencies(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,10 @@ def create(self, unique_id_field=None, name=None, **factory_kwargs):
return
if succeed_on != [] and response.status_code not in succeed_on:
response.failure("Status code {} is a failure".format(response.status_code))
# Useful for debugging
# logger.error(
# f"{response.request.method} {response.request.url} - REQUEST BODY: {payload}"
# )
return
if self.is_not_expected_result(response, [200, 201]):
if unique_id is not None:
Expand Down Expand Up @@ -177,6 +181,14 @@ def delete_item(self, resource_id):
)
)
return True
if(resource_id is None):
logger.debug(
"Skipping delete of {} instance {} because"
" resource_id is null".format(
self.__class__.__name__.replace("Client", ""), resource_id
)
)
return True
response = self._get_response(
"delete",
self.detail_endpoint(resource_id),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ class EducationOrganizationInterventionPrescriptionAssociationClient(EdFiAPIClie

def create_with_dependencies(self, **kwargs):
rx_reference = self.prescription_client.create_with_dependencies()
if(rx_reference is None or rx_reference["resource_id"] is None):
return

return self.create_using_dependencies(
rx_reference,
Expand All @@ -55,6 +57,8 @@ class EducationOrganizationNetworkAssociationClient(EdFiAPIClient):

def create_with_dependencies(self, **kwargs):
network_reference = self.network_client.create_with_dependencies()
if(network_reference is None or network_reference["resource_id"] is None):
return

return self.create_using_dependencies(
network_reference,
Expand All @@ -76,6 +80,8 @@ class EducationOrganizationPeerAssociationClient(EdFiAPIClient):

def create_with_dependencies(self, **kwargs):
school_reference = self.school_client.create_with_dependencies()
if(school_reference is None or school_reference["resource_id"] is None):
return

return self.create_using_dependencies(
school_reference,
Expand Down Expand Up @@ -106,6 +112,8 @@ class LocalEducationAgencyClient(EdFiAPIClient):

def create_with_dependencies(self, **kwargs):
service_center_reference = self.service_center_client.create_with_dependencies()
if(service_center_reference is None or service_center_reference["resource_id"] is None):
return

return self.create_using_dependencies(
service_center_reference,
Expand Down Expand Up @@ -145,6 +153,8 @@ class FeederSchoolAssociationClient(EdFiAPIClient):

def create_with_dependencies(self, **kwargs):
feeder_school_reference = self.school_client.create_with_dependencies()
if(feeder_school_reference is None or feeder_school_reference["resource_id"] is None):
return

return self.create_using_dependencies(
feeder_school_reference,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ class GradeClient(EdFiAPIClient):

def create_with_dependencies(self, **kwargs):
school_id = kwargs.pop("schoolId", SchoolClient.shared_elementary_school_id())
course_code = kwargs.pop("courseCode", "ELA-01")

assoc_reference = self.section_assoc_client.create_with_dependencies(
schoolId=school_id, courseCode=course_code
schoolId=school_id,
)
if(assoc_reference is None or assoc_reference["resource_id"] is None):
return

grade_period = assoc_reference["dependency_ids"]["section_client"][
"gradingPeriods"
][0]["gradingPeriodReference"]
Expand All @@ -38,6 +40,7 @@ def create_with_dependencies(self, **kwargs):
gradingPeriodReference__gradingPeriodDescriptor=grade_period[
"gradingPeriodDescriptor"
],
gradingPeriodReference__gradingPeriodName=grade_period["gradingPeriodName"],
gradingPeriodReference__schoolYear=section_reference["schoolYear"],
studentSectionAssociationReference__sectionIdentifier=section_reference[
"sectionIdentifier"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ class GradebookEntryClient(EdFiAPIClient):

def create_with_dependencies(self, **kwargs):
section_reference = self.section_client.create_with_dependencies()
if(section_reference is None or section_reference["resource_id"] is None):
return
section_attrs = section_reference["attributes"]

return self.create_using_dependencies(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ class InterventionClient(EdFiAPIClient):
def create_with_dependencies(self, **kwargs):
# Create intervention prescription
rx_reference = self.prescription_client.create_with_dependencies()
if(rx_reference is None or rx_reference["resource_id"] is None):
return

# Create intervention
return self.create_using_dependencies(
Expand All @@ -46,6 +48,8 @@ class InterventionStudyClient(EdFiAPIClient):
def create_with_dependencies(self, **kwargs):
# Create intervention prescription
rx_reference = self.prescription_client.create_with_dependencies()
if(rx_reference is None or rx_reference["resource_id"] is None):
return

# Create intervention
return self.create_using_dependencies(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ def create_with_dependencies(self, **kwargs):

# Create new student for association
institution_reference = self.institution_client.create_with_dependencies()
if(institution_reference is None or institution_reference["resource_id"] is None):
return

return self.create_using_dependencies(
institution_reference,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ def create_with_dependencies(self, **kwargs):
# Prepopulated student
studentUniqueId = kwargs.pop("studentUniqueId", StudentClient.shared_student_id())
period_reference = self.grading_period_client.create_with_dependencies()
if(period_reference is None or period_reference["resource_id"] is None):
return

return self.create_using_dependencies(
period_reference,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def shared_high_school_id(cls):
return cls._high_school_id
cls._high_school_id = cls.create_shared_resource("schoolId")
cls._create_school_course_code(cls._high_school_id, "ALG-2")
cls._create_school_course_code(cls._high_school_id, "ELA-01")
cls._create_school_graduation_plan(cls._high_school_id, 2020)
return cls._high_school_id

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,32 +24,38 @@ class SectionClient(EdFiAPIClient):
def create_with_dependencies(self, **kwargs):
school_id = kwargs.get("schoolId", SchoolClient.shared_elementary_school_id())
school_year = kwargs.get("schoolYear", 2014)
custom_course_code = kwargs.pop("courseCode", "ELA-01")

# Create a course offering and its dependencies
course_offering_reference = (
self.course_offering_client.create_with_dependencies(
schoolId=school_id,
schoolYear=school_year,
courseReference__courseCode=custom_course_code,
courseReference__educationOrganizationId=school_id,
schoolReference__schoolId=school_id,
)
)
if(course_offering_reference is None or course_offering_reference["resource_id"] is None):
return
course_offering_attrs = course_offering_reference["attributes"]

# Create a class period
class_period_reference = self.class_period_client.create_with_dependencies(
schoolReference__schoolId=school_id,
)
if(class_period_reference is None or class_period_reference["resource_id"] is None):
return

# Create a location
location_reference = self.location_client.create_with_dependencies(
schoolReference__schoolId=school_id,
)

if(location_reference is None or location_reference["resource_id"] is None):
return

# Create a section
section_attrs = self.factory.build_dict(
classPeriods__0__classPeriodReference__schoolId=school_id,
classPeriods__0__classPeriodReference__classPeriodName=class_period_reference[
"attributes"
][
Expand Down Expand Up @@ -119,6 +125,8 @@ def create_with_dependencies(self, **kwargs):
section_reference = self.section_client.create_with_dependencies(
schoolId=school_id, schoolYear=calendarSchoolYear
)
if(section_reference is None or section_reference["resource_id"] is None):
return
section_attrs = section_reference["attributes"]

return self.create_using_dependencies(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from edfi_performance_test.api.client.ed_fi_api_client import EdFiAPIClient
from edfi_performance_test.api.client.grading_period import GradingPeriodClient
from edfi_performance_test.api.client.school import SchoolClient
from edfi_performance_test.factories.descriptors.utils import build_descriptor


class SessionClient(EdFiAPIClient):
Expand All @@ -23,17 +22,15 @@ def create_with_dependencies(self, **kwargs):
schoolReference__schoolId=school_id,
schoolYearTypeReference__schoolYear=school_year,
)
if(period_1_reference is None or period_1_reference["resource_id"] is None):
return

period_2_reference = self.grading_period_client.create_with_dependencies(
schoolReference__schoolId=school_id,
schoolYearTypeReference__schoolYear=school_year,
beginDate="2014-10-06",
endDate="2014-12-15",
totalInstructionalDays=30,
gradingPeriodDescriptor=build_descriptor(
"GradingPeriod", "Second Six Weeks"
),
)

if(period_2_reference is None or period_2_reference["resource_id"] is None):
return
# Create session referencing grading periods
return self.create_using_dependencies(
[
Expand All @@ -52,6 +49,30 @@ def create_with_dependencies(self, **kwargs):
][
"periodSequence"
],
gradingPeriods__0__gradingPeriodReference__gradingPeriodDescriptor=period_1_reference[
"attributes"
][
"gradingPeriodDescriptor"
],
gradingPeriods__1__gradingPeriodReference__gradingPeriodDescriptor=period_2_reference[
"attributes"
][
"gradingPeriodDescriptor"
],
gradingPeriods__0__gradingPeriodReference__gradingPeriodName=period_1_reference[
"attributes"
][
"gradingPeriodName"
],
gradingPeriods__1__gradingPeriodReference__gradingPeriodName=period_2_reference[
"attributes"
][
"gradingPeriodName"
],
gradingPeriods__0__gradingPeriodReference__schoolId=school_id,
gradingPeriods__1__gradingPeriodReference__schoolId=school_id,
gradingPeriods__0__gradingPeriodReference__schoolYear=school_year,
gradingPeriods__1__gradingPeriodReference__schoolYear=school_year,
**kwargs
)

Expand Down
Loading
Loading