@@ -8,10 +8,11 @@ import com.gu.etagcaching.aws.sdkv2.s3.ExampleParser.parseFruit
88import com .gu .etagcaching .aws .sdkv2 .s3 .S3ClientForS3Mock .createS3clientFor
99import com .gu .etagcaching .aws .sdkv2 .s3 .TestS3Objects .bucket
1010import com .gu .etagcaching .aws .sdkv2 .s3 .response .Transformer .Bytes
11- import org .scalatest .{BeforeAndAfter , BeforeAndAfterAll , OptionValues }
1211import org .scalatest .concurrent .{IntegrationPatience , ScalaFutures }
1312import org .scalatest .flatspec .AnyFlatSpec
1413import org .scalatest .matchers .should .Matchers
14+ import org .scalatest .{BeforeAndAfterAll , OptionValues }
15+ import org .testcontainers .DockerClientFactory
1516import software .amazon .awssdk .services .s3 .S3AsyncClient
1617import software .amazon .awssdk .services .s3 .model .PutObjectRequest
1718
@@ -31,9 +32,20 @@ case class TestS3Objects(id: Int) {
3132 val example : ObjectId = ObjectId (bucket, s " $id/path " )
3233 val nonExistent : ObjectId = ObjectId (bucket, s " $id/nothing-should-be-here " )
3334}
34-
3535class S3ObjectFetchingTest extends AnyFlatSpec with Matchers with ScalaFutures with OptionValues with IntegrationPatience with BeforeAndAfterAll {
3636
37+ require(DockerClientFactory .instance().isDockerAvailable,
38+ """
39+ |****
40+ |
41+ |This test uses S3Mock/testcontainers/Docker, and requires Docker Engine to be running on the machine -
42+ |specifically, on developer laptops it requires *Docker Desktop*.
43+ |
44+ |See https://github.com/guardian/etag-caching/pull/137 for more details!
45+ |
46+ |****
47+ |""" .stripMargin
48+ )
3749 val s3Mock : S3MockContainer = new S3MockContainer (" latest" ).withInitialBuckets(TestS3Objects .bucket)
3850 override def beforeAll (): Unit = s3Mock.start()
3951 override def afterAll (): Unit = s3Mock.stop()
0 commit comments