Testing Tool is menu option 2. It automates interaction with NWEA MAP Growth test sessions via the MAP Proctor API atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/kaladoodotlua/LRhub/llms.txt
Use this file to discover all available pages before exploring further.
test.mapnwea.org/proctor. After joining a session with a name and password, it offers two sub-operations: scraping student data to a local file, or marking every enrolled student as ready to be confirmed by the proctor.
How It Works
Launch
Select option 2 from the LRhub main menu. LRhub will change directory into
tools/testingtool/ and run python3 -u main.py.Enter Session Credentials
You will be prompted for the MAP session name and session password:The tool calls
POST /joinTestSession with these credentials. If the server returns NOT_AUTHORIZED, the tool prints an error and exits.Sub-Operations
1 — Scrape Student IDs & Names
Re-joins the session and iterates through
studentSessionList in the API response. For each student, it prints the extracted data to the terminal and appends a line to tools/testingtool/output/students.txt.Output format (one student per line):2 — Set All Students Ready
Continuously re-joins the session, reads the
Set-Auth-Token response header, and calls POST /setStudentReadyToBeConfirmed for every student in the session list. Prints the API response text for each student.API Endpoints
Both operations communicate with the NWEA MAP Proctor API:| Method | Endpoint | Purpose |
|---|---|---|
POST | https://test.mapnwea.org/proctor/joinTestSession | Join a session and retrieve the student list |
POST | https://test.mapnwea.org/proctor/setStudentReadyToBeConfirmed | Mark a student as ready to be confirmed |
setStudentReadyToBeConfirmed request requires an Auth-Token header whose value is taken from the Set-Auth-Token header of the joinTestSession response.
Configuration
input/config.json
manual_test_name field provides a fallback test name. When a student’s assignedTest.testName field is null in the API response, this value is used instead. Set it to the expected test name if your session returns null test names.
input/proxies.txt
List one HTTP proxy per line in host:port format:
Output File
Student data scraped by option 1 is appended to:studentNumber:firstName:lastName format:
Error Handling
| Condition | Behavior |
|---|---|
errorMessage: NOT_AUTHORIZED | Prints “Invalid Session Name Or Password” and exits |
| JSON key missing for a student | Prints which key was not found and skips that student |
Set-Auth-Token header absent | Prints “Invalid Session” and exits the ready-loop |
Requirements
The Testing Tool requires Python 3 and the following packages:Python 3 must be installed and available as
python3 on your PATH. LRhub invokes the tool with python3 -u main.py.