From ea936eaae461cd7043c5c809e37472f266e8a9f2 Mon Sep 17 00:00:00 2001 From: William Walker <wnwalker@ucsc.edu> Date: Tue, 25 Mar 2025 10:10:06 -0700 Subject: [PATCH] fix: add new user_status field added by 2025.2.0 --Add new user_status field to User model (new platform API release from vendor) --Add test to generate report listing all test student users with no email --- .../kotlin/edu/ucsc/its/temerity/model/Users.kt | 3 +++ .../ucsc/its/temerity/test/ProdUtilityTests.kt | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/temerity/src/commonMain/kotlin/edu/ucsc/its/temerity/model/Users.kt b/temerity/src/commonMain/kotlin/edu/ucsc/its/temerity/model/Users.kt index 70832e0..2d57605 100644 --- a/temerity/src/commonMain/kotlin/edu/ucsc/its/temerity/model/Users.kt +++ b/temerity/src/commonMain/kotlin/edu/ucsc/its/temerity/model/Users.kt @@ -28,6 +28,9 @@ import kotlinx.serialization.Serializable public data class User( @SerialName("login_id") val loginId: String = "", + + @SerialName("user_status") + val userStatus: String = "", @SerialName("email_address") val emailAddress: String = "", diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdUtilityTests.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdUtilityTests.kt index 4dfbc5f..fe76ae5 100644 --- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdUtilityTests.kt +++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdUtilityTests.kt @@ -19,11 +19,14 @@ package edu.ucsc.its.temerity.test +import edu.ucsc.its.temerity.util.currentDate import io.kotest.common.ExperimentalKotest import io.kotest.common.KotestInternal import io.kotest.engine.runBlocking import kotlin.time.Duration.Companion.hours import kotlin.time.Duration.Companion.minutes +import org.jetbrains.kotlinx.dataframe.api.toDataFrame +import org.jetbrains.kotlinx.dataframe.io.writeCSV private class ProdUtilityTests : TemProdFunSpec() { @@ -48,5 +51,17 @@ private class ProdUtilityTests : TemProdFunSpec() { kermit.d("Deleted $deletedUsers test student users.") } } - } + + test("Generate a report listing all Canvas Test Student users").config(blockingTest = true, timeout = 12.hours) { + runBlocking { + val testStudentList = testTemerity.getUsers().filter { + it.firstName.startsWith("test", ignoreCase = true) && + it.lastName.startsWith("student", ignoreCase = true) && + it.emailAddress.isEmpty() + } + kermit.d("Found ${testStudentList.size} test student users.") + testStudentList.toDataFrame().writeCSV("test-student-users-${currentDate()}.csv") + } + } + } } -- GitLab