@@ -8,7 +8,7 @@ import io.circe.generic.semiauto._
8
8
import io .circe .parser ._
9
9
import io .circe .syntax ._
10
10
import io .circe .{Decoder , Encoder }
11
- import org .scalatest .BeforeAndAfter
11
+ import org .scalatest .BeforeAndAfterAll
12
12
import org .scalatest .flatspec .AnyFlatSpec
13
13
import org .scalatest .matchers .should .Matchers .convertToAnyShouldWrapper
14
14
import software .amazon .awssdk .auth .credentials .{AwsBasicCredentials , StaticCredentialsProvider }
@@ -28,7 +28,7 @@ object DDBTestUtils {
28
28
case class TimeSeries (joinName : String , featureName : String , tileTs : Long , metric : String , summary : Array [Double ])
29
29
30
30
}
31
- class DynamoDBKVStoreTest extends AnyFlatSpec with BeforeAndAfter {
31
+ class DynamoDBKVStoreTest extends AnyFlatSpec with BeforeAndAfterAll {
32
32
33
33
import DDBTestUtils ._
34
34
import DynamoDBKVStoreConstants ._
@@ -58,7 +58,7 @@ class DynamoDBKVStoreTest extends AnyFlatSpec with BeforeAndAfter {
58
58
series.asJson.noSpaces.getBytes(StandardCharsets .UTF_8 )
59
59
}
60
60
61
- before {
61
+ override def beforeAll () : Unit = {
62
62
// Start the local DynamoDB instance
63
63
server = ServerRunner .createServerFromCommandLineArgs(Array (" -inMemory" , " -port" , " 8000" ))
64
64
server.start()
@@ -75,9 +75,9 @@ class DynamoDBKVStoreTest extends AnyFlatSpec with BeforeAndAfter {
75
75
.build()
76
76
}
77
77
78
- after {
79
- client.close()
80
- server.stop()
78
+ override def afterAll () : Unit = {
79
+ // client.close()
80
+ // server.stop()
81
81
}
82
82
83
83
// Test creation of a table with primary keys only (e.g. model)
@@ -118,20 +118,20 @@ class DynamoDBKVStoreTest extends AnyFlatSpec with BeforeAndAfter {
118
118
buildModelPutRequest(model, dataset)
119
119
}
120
120
121
- val putResults = Await .result(kvStore.multiPut(putReqs), 1 .second )
121
+ val putResults = Await .result(kvStore.multiPut(putReqs), 1 .minute )
122
122
putResults.length shouldBe putReqs.length
123
123
putResults.foreach(r => r shouldBe true )
124
124
125
125
// call list - first call is only for 10 elements
126
126
val listReq1 = ListRequest (dataset, Map (listLimit -> 10 ))
127
- val listResults1 = Await .result(kvStore.list(listReq1), 1 .second )
127
+ val listResults1 = Await .result(kvStore.list(listReq1), 1 .minute )
128
128
listResults1.resultProps.contains(continuationKey) shouldBe true
129
129
validateExpectedListResponse(listResults1.values, 10 )
130
130
131
131
// call list - with continuation key
132
132
val listReq2 =
133
133
ListRequest (dataset, Map (listLimit -> 100 , continuationKey -> listResults1.resultProps(continuationKey)))
134
- val listResults2 = Await .result(kvStore.list(listReq2), 1 .second )
134
+ val listResults2 = Await .result(kvStore.list(listReq2), 1 .minute )
135
135
listResults2.resultProps.contains(continuationKey) shouldBe false
136
136
validateExpectedListResponse(listResults2.values, 100 )
137
137
}
@@ -151,17 +151,17 @@ class DynamoDBKVStoreTest extends AnyFlatSpec with BeforeAndAfter {
151
151
val putReq2 = buildModelPutRequest(model2, dataset)
152
152
val putReq3 = buildModelPutRequest(model3, dataset)
153
153
154
- val putResults = Await .result(kvStore.multiPut(Seq (putReq1, putReq2, putReq3)), 1 .second )
154
+ val putResults = Await .result(kvStore.multiPut(Seq (putReq1, putReq2, putReq3)), 1 .minute )
155
155
putResults shouldBe Seq (true , true , true )
156
156
157
157
// let's try and read these
158
158
val getReq1 = buildModelGetRequest(model1, dataset)
159
159
val getReq2 = buildModelGetRequest(model2, dataset)
160
160
val getReq3 = buildModelGetRequest(model3, dataset)
161
161
162
- val getResult1 = Await .result(kvStore.multiGet(Seq (getReq1)), 1 .second )
163
- val getResult2 = Await .result(kvStore.multiGet(Seq (getReq2)), 1 .second )
164
- val getResult3 = Await .result(kvStore.multiGet(Seq (getReq3)), 1 .second )
162
+ val getResult1 = Await .result(kvStore.multiGet(Seq (getReq1)), 1 .minute )
163
+ val getResult2 = Await .result(kvStore.multiGet(Seq (getReq2)), 1 .minute )
164
+ val getResult3 = Await .result(kvStore.multiGet(Seq (getReq3)), 1 .minute )
165
165
166
166
validateExpectedModelResponse(model1, getResult1)
167
167
validateExpectedModelResponse(model2, getResult2)
@@ -181,13 +181,13 @@ class DynamoDBKVStoreTest extends AnyFlatSpec with BeforeAndAfter {
181
181
182
182
// write to the kv store and confirm the writes were successful
183
183
val putRequests = points.map(p => buildTSPutRequest(p, dataset))
184
- val putResult = Await .result(kvStore.multiPut(putRequests), 1 .second )
184
+ val putResult = Await .result(kvStore.multiPut(putRequests), 1 .minute )
185
185
putResult.length shouldBe tsRange.length
186
186
putResult.foreach(r => r shouldBe true )
187
187
188
188
// query in time range: 10/05/24 00:00 to 10/10
189
189
val getRequest1 = buildTSGetRequest(points.head, dataset, 1728086400000L , 1728518400000L )
190
- val getResult1 = Await .result(kvStore.multiGet(Seq (getRequest1)), 1 .second )
190
+ val getResult1 = Await .result(kvStore.multiGet(Seq (getRequest1)), 1 .minute )
191
191
validateExpectedTimeSeriesResponse(points.head, 1728086400000L , 1728518400000L , getResult1)
192
192
}
193
193
0 commit comments