To integrate your SIS with Classroom, validate that your product meets Classroom's partnership requirements by running the provided set of conformance tests.
Access and run the tests
You can access the conformance tests on GitHub. In order to run the tests, you need the following:
- Token URL to retrieve OAuth 2.0 credentials
- One Roster URL ending in
/ims/oneroster/v1p1
- Client ID
- Client secret
- A teacher email address
There are three sections in the test suite:
- Basic Grade Sync
- Grade Categories
- Grading Periods
You can run the tests by using Google Colab or Jupyter notebook. Both Colab and Jupyter notebook let you run all tests at once. This helps you generate the test results to share with the Google Classroom team.
SIS requirements and expected behavior
The Google-defined tests exist to maintain consistency and minimize
errors that users might experience when utilizing SIS integrations with
Classroom. Read through the following pointers on the tests. In
GitHub, each test is marked with @title
. These titles are referenced in the
pointers.
Note the following about the Basic Grade Sync section:
In the
GetAllTeachers
test, theGET /teachers
endpoint is called with alimit=
query parameter. In subsequent tests, this parameter is used to ensure that your product can support a page size of 10,000.In the
GetAllTeachers with email filter
test, theGET /teachers
endpoint is called with afilter=
query parameter used to filter based on a teacher email address. You need to specify a teacher email address when running the tests.In the
GetClassesForTeacher
test, the/teachers/{teacher_sourced_id}/classes
endpoint is called with afilter=
query parameter used to filter based on active classes.In the
GetStudentsForClass
test, theGET /classes/{class_sourced_id}/students?limit=10000
endpoint is called. The student email must be returned in the response.In the
PutLineItem Create
test, grade categories or grading periods aren't required when callingPUT /lineItems/{line_item_sourced_id}
.In the
PutLineItem Edit
test, the API call shouldn't return an error if a long assignment title length is included. The test includes an assignment title length of 100+ characters.In the
PutResult Edit
test, it should be possible to set thescore
to a value greater than theresultValueMax
to represent extra credit.The
DELETE /results/{result_sourced_id}
endpoint is required and tested in theDeleteResult
test.The
DELETE /lineItems/{line_item_sourced_id}
endpoint is not required. It is optional and used for data clean-up.
Note the following about the Grade Categories and Grading Periods sections:
- Only one
GET /categories
endpoint is required. Comment out the one you're not using if running all conformance tests at once:/categories?limit=10000
/classes/{class_sourced_id}/categories?limit=10000
- Grading periods support is tested by retrieving the
term_sourced_id
in theGetAllClasses w/ filter
test. Thisterm_sourced_id
is used to retrieve the grading periods in the term by calling theGET terms/{term_sourced_id}/gradingPeriods?limit=10000
endpoint in theGetGradingPeriodsForTerm
test.
- Only one
Share the test results with the Google Classroom team
After you run the tests, a full report with the results of each test is generated. These tests are used to determine whether your product meets Google's OneRoster 1.1 consumption requirements. Download or take a screenshot of the generated report. Email the report and a link to your product's OneRoster 1.1 certification to classroom-sis-external@google.com.
Get support
Email classroom-sis-external@google.com with any questions or concerns.