Skip to content

Commit 8873a1d

Browse files
committed
Add dataset creation utility and update tests to use dynamic dataset IDs
- Introduced `makeDatasetCreateRequest` utility for dataset creation in integration tests. - Reordered test setup in `RunServiceIntegrationTest` to ensure dataset creation precedes workspace creation. - Updated dataset access control to use `DatasetAccessControl` instead of `DatasetRole`. - Modified `RunnerControllerTests` to dynamically create and use dataset IDs in test cases.
1 parent 07704b6 commit 8873a1d

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

api/src/integrationTest/kotlin/com/cosmotech/api/home/runner/RunnerControllerTests.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import com.cosmotech.api.events.RunStart
77
import com.cosmotech.api.events.UpdateRunnerStatus
88
import com.cosmotech.api.home.Constants.PLATFORM_ADMIN_EMAIL
99
import com.cosmotech.api.home.ControllerTestBase
10+
import com.cosmotech.api.home.ControllerTestUtils.DatasetUtils.constructDatasetCreateRequest
11+
import com.cosmotech.api.home.ControllerTestUtils.DatasetUtils.createDatasetAndReturnId
1012
import com.cosmotech.api.home.ControllerTestUtils.OrganizationUtils.constructOrganizationCreateRequest
1113
import com.cosmotech.api.home.ControllerTestUtils.OrganizationUtils.createOrganizationAndReturnId
1214
import com.cosmotech.api.home.ControllerTestUtils.RunnerUtils.constructRunnerObject
@@ -54,6 +56,7 @@ class RunnerControllerTests : ControllerTestBase() {
5456
private lateinit var organizationId: String
5557
private lateinit var workspaceId: String
5658
private lateinit var solutionId: String
59+
private lateinit var datasetId: String
5760
private val logger = LoggerFactory.getLogger(RunnerControllerTests::class.java)
5861

5962
@SpykBean @Autowired private lateinit var eventPublisher: CsmEventPublisher
@@ -91,6 +94,8 @@ class RunnerControllerTests : ControllerTestBase() {
9194
workspaceId =
9295
createWorkspaceAndReturnId(
9396
mvc, organizationId, constructWorkspaceCreateRequest(solutionId = solutionId))
97+
datasetId =
98+
createDatasetAndReturnId(mvc, organizationId, workspaceId, constructDatasetCreateRequest())
9499
}
95100

96101
@Test
@@ -101,7 +106,7 @@ class RunnerControllerTests : ControllerTestBase() {
101106
val runTemplateName = "run_template_name"
102107
val description = "this_is_a_description"
103108
val tags = mutableListOf("tags1", "tags2")
104-
val datasetList = mutableListOf("datasetId1", "datasetId2")
109+
val datasetList = mutableListOf(datasetId)
105110
val runnerParameterId = "parameterId1"
106111
val runnerParameterValue = "parameter_value"
107112
val runnerParameterVarType = "this_is_a_vartype"
@@ -190,7 +195,7 @@ class RunnerControllerTests : ControllerTestBase() {
190195
val runTemplateName = "run_template_name"
191196
val description = "this_is_a_description"
192197
val tags = mutableListOf("tags1", "tags2")
193-
val datasetList = mutableListOf("datasetId1", "datasetId2")
198+
val datasetList = mutableListOf(datasetId)
194199
val runnerParameterId = "parameterId1"
195200
val runnerParameterValue = "parameter_value"
196201
val runnerParameterVarType = "this_is_a_vartype"
@@ -285,7 +290,7 @@ class RunnerControllerTests : ControllerTestBase() {
285290
val runTemplateName = "run_template_name"
286291
val description = "this_is_a_description"
287292
val tags = mutableListOf("tags1", "tags2")
288-
val datasetList = mutableListOf("datasetId1", "datasetId2")
293+
val datasetList = mutableListOf(datasetId)
289294
val runnerParameterId = "parameterId1"
290295
val runnerParameterValue = "parameter_value"
291296
val runnerParameterVarType = "this_is_a_vartype"

run/src/integrationTest/kotlin/com/cosmotech/run/service/RunServiceIntegrationTest.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,16 +146,18 @@ class RunServiceIntegrationTest : CsmTestBase() {
146146
organization = makeOrganizationCreateRequest()
147147
organizationSaved = organizationApiService.createOrganization(organization)
148148

149+
solution = makeSolutionCreateRequest()
150+
solutionSaved = solutionApiService.createSolution(organizationSaved.id, solution)
151+
149152
workspace = makeWorkspaceCreateRequest(solutionSaved.id, "Workspace")
150153
workspaceSaved = workspaceApiService.createWorkspace(organizationSaved.id, workspace)
151154

155+
dataset = makeDatasetCreateRequest()
156+
152157
datasetSaved =
153158
datasetApiService.createDataset(
154159
organizationSaved.id, workspaceSaved.id, dataset, emptyArray())
155160

156-
solution = makeSolutionCreateRequest()
157-
solutionSaved = solutionApiService.createSolution(organizationSaved.id, solution)
158-
159161
runner =
160162
makeRunnerCreateRequest(
161163
solutionSaved.id,
@@ -170,6 +172,8 @@ class RunServiceIntegrationTest : CsmTestBase() {
170172
every { eventPublisher.publishEvent(any<RunDeleted>()) } returns Unit
171173
}
172174

175+
fun makeDatasetCreateRequest() = DatasetCreateRequest(name = "Dataset Test")
176+
173177
fun makeSolutionCreateRequest() =
174178
SolutionCreateRequest(
175179
key = UUID.randomUUID().toString(),

runner/src/main/kotlin/com/cosmotech/runner/service/RunnerService.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import com.cosmotech.api.utils.getCurrentAccountIdentifier
2626
import com.cosmotech.api.utils.getCurrentAuthenticatedRoles
2727
import com.cosmotech.dataset.DatasetApiServiceInterface
2828
import com.cosmotech.dataset.domain.Dataset
29-
import com.cosmotech.dataset.domain.DatasetRole
29+
import com.cosmotech.dataset.domain.DatasetAccessControl
3030
import com.cosmotech.organization.OrganizationApiServiceInterface
3131
import com.cosmotech.organization.domain.Organization
3232
import com.cosmotech.runner.domain.CreatedRun
@@ -617,12 +617,11 @@ class RunnerService(
617617
private fun addUserAccessControlOnDataset(dataset: Dataset, roleDefinition: RunnerAccessControl) {
618618
val newDatasetAcl = dataset.security.accessControlList.toList()
619619
if (newDatasetAcl.none { it.id == roleDefinition.id }) {
620-
datasetApiService.updateDatasetAccessControl(
620+
datasetApiService.createDatasetAccessControl(
621621
organization!!.id,
622622
workspace!!.id,
623623
dataset.id,
624-
roleDefinition.id,
625-
DatasetRole(roleDefinition.role))
624+
DatasetAccessControl(roleDefinition.id, roleDefinition.role))
626625
}
627626
}
628627
}

0 commit comments

Comments
 (0)