From 2589e7d6f400a7b050c21f46a4ab1662baa1cdb7 Mon Sep 17 00:00:00 2001 From: Thiago Nunes Date: Thu, 12 Nov 2020 09:28:15 +1100 Subject: [PATCH] fix: updates project / instance for samples tests (#613) * fix: updates project / instance for samples tests Updates the project and instance for the samples tests, so that they use the same configuration as the integration tests. * fix: excludes modified kokoro / pom.xml files Excludes modified kokoro / pom.xml files from the synth. * fix: fixes the account used to run samples tests * fix: creates quickstart db for test Creates the quickstart database for the integration test. --- .kokoro/nightly/java11-samples.cfg | 8 ++--- .kokoro/nightly/java8-samples.cfg | 8 ++--- .kokoro/nightly/samples.cfg | 8 ++--- .kokoro/presubmit/java11-samples.cfg | 8 ++--- .kokoro/presubmit/java8-samples.cfg | 8 ++--- .kokoro/presubmit/samples.cfg | 10 +++--- samples/install-without-bom/pom.xml | 4 +-- samples/snapshot/pom.xml | 4 +-- samples/snippets/pom.xml | 4 +-- .../example/spanner/QuickstartSampleIT.java | 33 +++++++++++++++++-- synth.py | 9 +++++ 11 files changed, 70 insertions(+), 34 deletions(-) diff --git a/.kokoro/nightly/java11-samples.cfg b/.kokoro/nightly/java11-samples.cfg index a01c8349fd..bbcb3f2715 100644 --- a/.kokoro/nightly/java11-samples.cfg +++ b/.kokoro/nightly/java11-samples.cfg @@ -14,22 +14,22 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" + value: "secret_manager/java-it-service-account" } env_vars: { key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" + value: "java-it-service-account" } env_vars: { diff --git a/.kokoro/nightly/java8-samples.cfg b/.kokoro/nightly/java8-samples.cfg index 587b095256..7284cfeb18 100644 --- a/.kokoro/nightly/java8-samples.cfg +++ b/.kokoro/nightly/java8-samples.cfg @@ -14,22 +14,22 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" + value: "secret_manager/java-it-service-account" } env_vars: { key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" + value: "java-it-service-account" } env_vars: { diff --git a/.kokoro/nightly/samples.cfg b/.kokoro/nightly/samples.cfg index f25429314f..2cabe201bc 100644 --- a/.kokoro/nightly/samples.cfg +++ b/.kokoro/nightly/samples.cfg @@ -14,22 +14,22 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" + value: "secret_manager/java-it-service-account" } env_vars: { key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" + value: "java-it-service-account" } env_vars: { diff --git a/.kokoro/presubmit/java11-samples.cfg b/.kokoro/presubmit/java11-samples.cfg index 8301d58abb..2812301e78 100644 --- a/.kokoro/presubmit/java11-samples.cfg +++ b/.kokoro/presubmit/java11-samples.cfg @@ -14,21 +14,21 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" + value: "secret_manager/java-it-service-account" } env_vars: { key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" + value: "java-it-service-account" } diff --git a/.kokoro/presubmit/java8-samples.cfg b/.kokoro/presubmit/java8-samples.cfg index 95f0f81ffb..49a231b9f2 100644 --- a/.kokoro/presubmit/java8-samples.cfg +++ b/.kokoro/presubmit/java8-samples.cfg @@ -14,21 +14,21 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" + value: "secret_manager/java-it-service-account" } env_vars: { key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" + value: "java-it-service-account" } diff --git a/.kokoro/presubmit/samples.cfg b/.kokoro/presubmit/samples.cfg index 01e0960047..724216504e 100644 --- a/.kokoro/presubmit/samples.cfg +++ b/.kokoro/presubmit/samples.cfg @@ -14,20 +14,20 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" + value: "secret_manager/java-it-service-account" } env_vars: { key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" -} \ No newline at end of file + value: "java-it-service-account" +} diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0137c2c95d..a971506e64 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -142,9 +142,9 @@ 3.0.0-M5 - default-instance + spanner-testing mysample - quickstart-db + quick-db diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 788a0b08ea..005eaf3cc0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -141,9 +141,9 @@ 3.0.0-M5 - default-instance + spanner-testing mysample - quickstart-db + quick-db diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 05ae6b7cd8..a06b68f798 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -146,9 +146,9 @@ 3.0.0-M5 - default-instance + spanner-testing mysample - quickstart-db + quick-db diff --git a/samples/snippets/src/test/java/com/example/spanner/QuickstartSampleIT.java b/samples/snippets/src/test/java/com/example/spanner/QuickstartSampleIT.java index 707018d71c..ce0edd73e1 100644 --- a/samples/snippets/src/test/java/com/example/spanner/QuickstartSampleIT.java +++ b/samples/snippets/src/test/java/com/example/spanner/QuickstartSampleIT.java @@ -18,10 +18,19 @@ import static com.google.common.truth.Truth.assertThat; +import com.google.cloud.spanner.DatabaseAdminClient; +import com.google.cloud.spanner.DatabaseNotFoundException; +import com.google.cloud.spanner.Spanner; +import com.google.cloud.spanner.SpannerOptions; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.Arrays; +import java.util.Collections; +import java.util.UUID; import org.junit.After; +import org.junit.AfterClass; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -32,13 +41,27 @@ @RunWith(JUnit4.class) @SuppressWarnings("checkstyle:abbreviationaswordinname") public class QuickstartSampleIT { - private String instanceId = System.getProperty("spanner.test.instance"); - // This database needs to exist for test to pass. - private String dbId = System.getProperty("spanner.quickstart.database"); + private static String instanceId = System.getProperty("spanner.test.instance"); + private static String dbId = formatForTest(System.getProperty("spanner.quickstart.database")); + private static DatabaseAdminClient dbClient; + private ByteArrayOutputStream bout; private PrintStream stdOut = System.out; private PrintStream out; + @BeforeClass + public static void createDatabase() { + final SpannerOptions options = SpannerOptions.newBuilder().build(); + final Spanner spanner = options.getService(); + dbClient = spanner.getDatabaseAdminClient(); + dbClient.createDatabase(instanceId, dbId, Collections.emptyList()); + } + + @AfterClass + public static void dropDatabase() { + dbClient.dropDatabase(instanceId, dbId); + } + @Before public void setUp() { bout = new ByteArrayOutputStream(); @@ -59,4 +82,8 @@ public void testQuickstart() throws Exception { String got = bout.toString(); assertThat(got).contains("1"); } + + private static String formatForTest(String name) { + return name + "-" + UUID.randomUUID().toString().substring(0, 20); + } } diff --git a/synth.py b/synth.py index 02ed0e05ef..4dbba62d79 100644 --- a/synth.py +++ b/synth.py @@ -78,5 +78,14 @@ java.common_templates(excludes=[ '.kokoro/continuous/common.cfg', '.kokoro/nightly/common.cfg', + '.kokoro/nightly/java8-samples.cfg', + '.kokoro/nightly/java11-samples.cfg', + '.kokoro/nightly/samples.cfg', '.kokoro/presubmit/common.cfg', + '.kokoro/presubmit/java8-samples.cfg', + '.kokoro/presubmit/java11-samples.cfg', + '.kokoro/presubmit/samples.cfg', + 'samples/install-without-bom/pom.xml', + 'samples/snapshot/pom.xml', + 'samples/snippets/pom.xml', ])