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 70832e0975e7d5b722a903599bf71f7afb13deee..2d576055cec3033a4ef699af7caf809871f591d7 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 4dfbc5f4ee81950826933234163307c86fa64412..fe76ae5a5c2775cb3711f5e6d8c910124929722b 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") + } + } + } }