Skip to content

Commit fb80584

Browse files
authored
Refactor GBEK tests to split out secret setup for tests that dont need it (#36479)
1 parent 227a632 commit fb80584

File tree

2 files changed

+56
-52
lines changed

2 files changed

+56
-52
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"comment": "Modify this file in a trivial way to cause this test suite to run",
3-
"modification": 4
3+
"modification": 5
44
}

sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/GroupByKeyTest.java

Lines changed: 55 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -117,57 +117,6 @@ public class GroupByKeyTest implements Serializable {
117117
/** Shared test base class with setup/teardown helpers. */
118118
public abstract static class SharedTestBase {
119119
@Rule public transient TestPipeline p = TestPipeline.create();
120-
121-
private static final String PROJECT_ID = "apache-beam-testing";
122-
private static final String SECRET_ID = "gbek-test";
123-
public static String gcpSecretVersionName;
124-
private static String secretId;
125-
126-
@BeforeClass
127-
public static void setup() throws IOException {
128-
secretId = String.format("%s-%d", SECRET_ID, new SecureRandom().nextInt(10000));
129-
SecretManagerServiceClient client;
130-
try {
131-
client = SecretManagerServiceClient.create();
132-
} catch (IOException e) {
133-
gcpSecretVersionName = null;
134-
return;
135-
}
136-
ProjectName projectName = ProjectName.of(PROJECT_ID);
137-
SecretName secretName = SecretName.of(PROJECT_ID, secretId);
138-
139-
try {
140-
client.getSecret(secretName);
141-
} catch (Exception e) {
142-
com.google.cloud.secretmanager.v1.Secret secret =
143-
com.google.cloud.secretmanager.v1.Secret.newBuilder()
144-
.setReplication(
145-
com.google.cloud.secretmanager.v1.Replication.newBuilder()
146-
.setAutomatic(
147-
com.google.cloud.secretmanager.v1.Replication.Automatic.newBuilder()
148-
.build())
149-
.build())
150-
.build();
151-
client.createSecret(projectName, secretId, secret);
152-
byte[] secretBytes = new byte[32];
153-
new SecureRandom().nextBytes(secretBytes);
154-
client.addSecretVersion(
155-
secretName,
156-
SecretPayload.newBuilder()
157-
.setData(ByteString.copyFrom(java.util.Base64.getUrlEncoder().encode(secretBytes)))
158-
.build());
159-
}
160-
gcpSecretVersionName = secretName.toString() + "/versions/latest";
161-
}
162-
163-
@AfterClass
164-
public static void tearDown() throws IOException {
165-
if (gcpSecretVersionName != null) {
166-
SecretManagerServiceClient client = SecretManagerServiceClient.create();
167-
SecretName secretName = SecretName.of(PROJECT_ID, secretId);
168-
client.deleteSecret(secretName);
169-
}
170-
}
171120
}
172121

173122
/** Tests validating basic {@link GroupByKey} scenarios. */
@@ -673,6 +622,61 @@ public void testLargeKeys10MB() throws Exception {
673622
public void testLargeKeys100MB() throws Exception {
674623
runLargeKeysTest(p, 100 << 20);
675624
}
625+
}
626+
627+
/** Tests validating GroupByKey behaviors with the gbek flag set. */
628+
@RunWith(JUnit4.class)
629+
public static class GbekTests extends SharedTestBase {
630+
private static final String PROJECT_ID = "apache-beam-testing";
631+
private static final String SECRET_ID = "gbek-test";
632+
public static String gcpSecretVersionName;
633+
private static String secretId;
634+
635+
@BeforeClass
636+
public static void setup() throws IOException {
637+
secretId = String.format("%s-%d", SECRET_ID, new SecureRandom().nextInt(10000));
638+
SecretManagerServiceClient client;
639+
try {
640+
client = SecretManagerServiceClient.create();
641+
} catch (IOException e) {
642+
gcpSecretVersionName = null;
643+
return;
644+
}
645+
ProjectName projectName = ProjectName.of(PROJECT_ID);
646+
SecretName secretName = SecretName.of(PROJECT_ID, secretId);
647+
648+
try {
649+
client.getSecret(secretName);
650+
} catch (Exception e) {
651+
com.google.cloud.secretmanager.v1.Secret secret =
652+
com.google.cloud.secretmanager.v1.Secret.newBuilder()
653+
.setReplication(
654+
com.google.cloud.secretmanager.v1.Replication.newBuilder()
655+
.setAutomatic(
656+
com.google.cloud.secretmanager.v1.Replication.Automatic.newBuilder()
657+
.build())
658+
.build())
659+
.build();
660+
client.createSecret(projectName, secretId, secret);
661+
byte[] secretBytes = new byte[32];
662+
new SecureRandom().nextBytes(secretBytes);
663+
client.addSecretVersion(
664+
secretName,
665+
SecretPayload.newBuilder()
666+
.setData(ByteString.copyFrom(java.util.Base64.getUrlEncoder().encode(secretBytes)))
667+
.build());
668+
}
669+
gcpSecretVersionName = secretName.toString() + "/versions/latest";
670+
}
671+
672+
@AfterClass
673+
public static void tearDown() throws IOException {
674+
if (gcpSecretVersionName != null) {
675+
SecretManagerServiceClient client = SecretManagerServiceClient.create();
676+
SecretName secretName = SecretName.of(PROJECT_ID, secretId);
677+
client.deleteSecret(secretName);
678+
}
679+
}
676680

677681
@Test
678682
@Category(NeedsRunner.class)

0 commit comments

Comments
 (0)