Skip to content

Commit 7a9f3fe

Browse files
olavloitekolea2
authored andcommitted
allow specifying a custom credentials file for integration tests (#4782)
1 parent e706ba1 commit 7a9f3fe

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

google-cloud-clients/google-cloud-spanner/src/test/java/com/google/cloud/spanner/GceTestEnvConfig.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import static com.google.common.base.Preconditions.checkState;
2020

21+
import com.google.auth.oauth2.GoogleCredentials;
2122
import com.google.cloud.spanner.spi.v1.SpannerInterceptorProvider;
2223
import io.grpc.CallOptions;
2324
import io.grpc.Channel;
@@ -28,13 +29,16 @@
2829
import io.grpc.Metadata;
2930
import io.grpc.MethodDescriptor;
3031
import io.grpc.Status;
32+
import java.io.FileInputStream;
33+
import java.io.IOException;
3134
import java.util.Random;
3235
import java.util.concurrent.atomic.AtomicBoolean;
3336

3437
/** Configure TestEnv based on configuration provided. */
3538
public class GceTestEnvConfig implements TestEnvConfig {
3639
public static final String GCE_PROJECT_ID = "spanner.gce.config.project_id";
3740
public static final String GCE_SERVER_URL = "spanner.gce.config.server_url";
41+
public static final String GCE_CREDENTIALS_FILE = "spanner.gce.config.credentials_file";
3842
public static final String GCE_STREAM_BROKEN_PROBABILITY =
3943
"spanner.gce.config.stream_broken_probability";
4044

@@ -43,6 +47,7 @@ public class GceTestEnvConfig implements TestEnvConfig {
4347
public GceTestEnvConfig() {
4448
String projectId = System.getProperty(GCE_PROJECT_ID, "");
4549
String serverUrl = System.getProperty(GCE_SERVER_URL, "");
50+
String credentialsFile = System.getProperty(GCE_CREDENTIALS_FILE, "");
4651
double errorProbability =
4752
Double.parseDouble(System.getProperty(GCE_STREAM_BROKEN_PROBABILITY, "0.0"));
4853
checkState(errorProbability <= 1.0);
@@ -53,6 +58,13 @@ public GceTestEnvConfig() {
5358
if (!serverUrl.isEmpty()) {
5459
builder.setHost(serverUrl);
5560
}
61+
if (!credentialsFile.isEmpty()) {
62+
try {
63+
builder.setCredentials(GoogleCredentials.fromStream(new FileInputStream(credentialsFile)));
64+
} catch (IOException e) {
65+
throw new RuntimeException(e);
66+
}
67+
}
5668
options =
5769
builder
5870
.setInterceptorProvider(

0 commit comments

Comments
 (0)