tests/definition/test-definition.R

test_that("Manage job definitions", {
  x <- crew_definition_aws_batch(
    job_definition = "crew-aws-batch-test",
    job_queue = "crew-aws-batch-job-queue",
    region = "us-east-2"
  )
  revisions <- integer(0L)
  for (index in seq_len(2L)) {
    out <- x$register(
      image = "alpine:latest",
      platform_capabilities = "EC2",
      memory_units = "gigabytes",
      memory = 1,
      cpus = 1,
      seconds_timeout = 600,
      scheduling_priority = 3,
      tags = c("crew_aws_batch_1", "crew_aws_batch_2"),
      propagate_tags = TRUE
    )
    revisions <- c(revisions, out$revision)
  }
  expect_equal(nrow(out), 1L)
  expect_equal(out$name, x$job_definition)
  out <- x$describe()
  expect_gt(nrow(out), 1L)
  expect_equal(unique(out$name), x$job_definition)
  out <- x$describe(revision = max(revisions))
  expect_equal(nrow(out), 1L)
  expect_equal(out$name, x$job_definition)
  expect_equal(out$status, "active")
  expect_equal(out$revision, max(revisions))
  x$deregister()
  out <- x$describe(revision = max(revisions))
  expect_equal(out$revision, max(revisions))
  expect_equal(out$status, "inactive")
  x$deregister(revision = min(revisions))
  out <- x$describe(revision = min(revisions))
  expect_equal(out$revision, min(revisions))
  expect_equal(out$status, "inactive")
})

test_that("submit a job", {
  x <- crew_definition_aws_batch(
    job_definition = "crew-aws-batch-test",
    job_queue = "crew-aws-batch-job-queue",
    region = "us-east-2"
  )
  x$register(
    image = "alpine:latest",
    platform_capabilities = "EC2",
    memory_units = "mebibytes",
    memory = 128,
    cpus = 1,
    seconds_timeout = 60,
    tags = c("crew_aws_batch_1", "crew_aws_batch_2"),
    propagate_tags = TRUE
  )
  on.exit(x$deregister())
  job <- x$submit(
    command = c("sleep", "1"),
    memory_units = "mebibytes",
    memory = 500,
    cpus = 1,
    seconds_timeout = 60,
    tags = c("crew_aws_batch_1", "crew_aws_batch_2"),
    propagate_tags = TRUE
  )
  expect_true(tibble::is_tibble(job))
  expect_gt(nrow(job), 0L)
  expect_true(all(c("name", "id", "arn") %in% colnames(job)))
})

Try the crew.aws.batch package in your browser

Any scripts or data that you put into this service are public.

crew.aws.batch documentation built on June 9, 2025, 5:09 p.m.