Skip to content

Commit 3b3be98

Browse files
mihirvala-crestdataglasntharshnasitcrest
authored
chore(modelarmor): Added floor settings tests (#10106)
* chore(modelarmor): Added floorsettings tests and marked them as skip for now * chore(modelarmor): refactored TODO messages * chore(tests): enabled floor settings tests * add default variables for model armor tests * fix(test): update method of folder floor setting --------- Co-authored-by: Katie McLaughlin <[email protected]> Co-authored-by: Harsh Nasit <[email protected]>
1 parent 75305dd commit 3b3be98

File tree

4 files changed

+94
-6
lines changed

4 files changed

+94
-6
lines changed

.kokoro/tests/run_tests.sh

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ fi
4545
if [[ "$SCRIPT_DEBUG" != "true" ]]; then
4646
# Update `gcloud` and log versioning for debugging
4747
apt update && apt -y upgrade google-cloud-sdk
48-
48+
4949
echo "********** GIT INFO ***********"
5050
git version
5151
echo "********** GCLOUD INFO ***********"
@@ -67,7 +67,10 @@ if [[ "$SCRIPT_DEBUG" != "true" ]]; then
6767
# For Cloud Run filesystem sample
6868
export FILESTORE_IP_ADDRESS=$(gcloud secrets versions access latest --secret fs-app)
6969
export MNT_DIR=$PWD/run/filesystem
70-
70+
# For Model Armor tests
71+
export MA_FOLDER_ID=695279264361
72+
export MA_ORG_ID=951890214235
73+
7174
SECRET_FILES=("java-docs-samples-service-account.json" \
7275
"java-aiplatform-samples-secrets.txt" \
7376
"java-automl-samples-secrets.txt" \
@@ -88,7 +91,7 @@ if [[ "$SCRIPT_DEBUG" != "true" ]]; then
8891

8992
# create secret dir
9093
mkdir -p "${KOKORO_GFILE_DIR}/secrets"
91-
94+
9295
for SECRET in "${SECRET_FILES[@]}"; do
9396
# grab latest version of secret
9497
gcloud secrets versions access latest --secret="${SECRET%.*}" > "${KOKORO_GFILE_DIR}/secrets/$SECRET"
@@ -166,7 +169,7 @@ test_prog="$PWD/.kokoro/tests/run_test_java.sh"
166169

167170
git config --global --add safe.directory $PWD
168171

169-
# Use btlr to run all the tests in each folder
172+
# Use btlr to run all the tests in each folder
170173
echo "btlr" "${btlr_args[@]}" -- "${test_prog}"
171174
btlr "${btlr_args[@]}" -- "${test_prog}"
172175

modelarmor/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<dependency>
4444
<groupId>com.google.cloud</groupId>
4545
<artifactId>libraries-bom</artifactId>
46-
<version>26.60.0</version>
46+
<version>26.64.0</version>
4747
<type>pom</type>
4848
<scope>import</scope>
4949
</dependency>

modelarmor/src/main/java/modelarmor/GetFolderFloorSetting.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public static FloorSetting getFolderFloorSetting(String folderId) throws IOExcep
3838
// Initialize client that will be used to send requests. This client only
3939
// needs to be created once, and can be reused for multiple requests.
4040
try (ModelArmorClient client = ModelArmorClient.create()) {
41-
String name = FloorSettingName.of(folderId, "global").toString();
41+
String name = FloorSettingName.ofFolderLocationName(folderId, "global").toString();
4242

4343
GetFloorSettingRequest request = GetFloorSettingRequest.newBuilder().setName(name).build();
4444

modelarmor/src/test/java/modelarmor/SnippetsIT.java

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
import com.google.cloud.modelarmor.v1.FilterConfig;
2929
import com.google.cloud.modelarmor.v1.FilterMatchState;
3030
import com.google.cloud.modelarmor.v1.FilterResult;
31+
import com.google.cloud.modelarmor.v1.FloorSetting;
32+
import com.google.cloud.modelarmor.v1.FloorSettingName;
3133
import com.google.cloud.modelarmor.v1.LocationName;
3234
import com.google.cloud.modelarmor.v1.MaliciousUriFilterSettings;
3335
import com.google.cloud.modelarmor.v1.MaliciousUriFilterSettings.MaliciousUriFilterEnforcement;
@@ -46,6 +48,7 @@
4648
import com.google.cloud.modelarmor.v1.SdpFinding;
4749
import com.google.cloud.modelarmor.v1.Template;
4850
import com.google.cloud.modelarmor.v1.TemplateName;
51+
import com.google.cloud.modelarmor.v1.UpdateFloorSettingRequest;
4952
import com.google.privacy.dlp.v2.CreateDeidentifyTemplateRequest;
5053
import com.google.privacy.dlp.v2.CreateInspectTemplateRequest;
5154
import com.google.privacy.dlp.v2.DeidentifyConfig;
@@ -72,6 +75,7 @@
7275
import org.junit.AfterClass;
7376
import org.junit.Before;
7477
import org.junit.BeforeClass;
78+
import org.junit.Ignore;
7579
import org.junit.Test;
7680
import org.junit.runner.RunWith;
7781
import org.junit.runners.JUnit4;
@@ -80,6 +84,10 @@
8084
public class SnippetsIT {
8185

8286
private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT");
87+
private static final String FOLDER_ID = System.getenv()
88+
.getOrDefault("MA_FOLDER_ID", "global");
89+
private static final String ORGANIZATION_ID = System.getenv()
90+
.getOrDefault("MA_ORG_ID", "global");
8391
private static final String LOCATION_ID = System.getenv()
8492
.getOrDefault("GOOGLE_CLOUD_PROJECT_LOCATION", "us-central1");
8593
private static final String MA_ENDPOINT = String.format("modelarmor.%s.rep.googleapis.com:443",
@@ -99,7 +107,11 @@ public class SnippetsIT {
99107
private static String TEST_DEIDENTIFY_TEMPLATE_NAME;
100108
private ByteArrayOutputStream stdOut;
101109
private PrintStream originalOut;
110+
private static String[] floorSettingNames;
102111
private static String[] templateToDelete;
112+
private static String projectFloorSettingName;
113+
private static String folderFloorSettingName;
114+
private static String organizationFloorSettingName;
103115

104116
// Check if the required environment variables are set.
105117
private static void requireEnvVar(String varName) {
@@ -111,6 +123,14 @@ private static void requireEnvVar(String varName) {
111123
@BeforeClass
112124
public static void beforeAll() throws IOException {
113125
requireEnvVar("GOOGLE_CLOUD_PROJECT");
126+
requireEnvVar("MA_FOLDER_ID");
127+
requireEnvVar("MA_ORG_ID");
128+
129+
projectFloorSettingName =
130+
FloorSettingName.ofProjectLocationName(PROJECT_ID, "global").toString();
131+
folderFloorSettingName = FloorSettingName.ofFolderLocationName(FOLDER_ID, "global").toString();
132+
organizationFloorSettingName =
133+
FloorSettingName.ofOrganizationLocationName(ORGANIZATION_ID, "global").toString();
114134

115135
TEST_TEMPLATE_ID = randomId();
116136
TEST_RAI_TEMPLATE_ID = randomId();
@@ -147,6 +167,10 @@ private static String randomId() {
147167
@AfterClass
148168
public static void afterAll() throws IOException {
149169
requireEnvVar("GOOGLE_CLOUD_PROJECT");
170+
requireEnvVar("MA_FOLDER_ID");
171+
requireEnvVar("MA_ORG_ID");
172+
173+
resetFloorSettings();
150174

151175
// Delete templates after running tests.
152176
templateToDelete = new String[] {
@@ -380,6 +404,67 @@ private static void deleteTemplate(String templateId) throws IOException {
380404
}
381405
}
382406

407+
private static void resetFloorSettings() throws IOException {
408+
floorSettingNames = new String[] {
409+
projectFloorSettingName, folderFloorSettingName, organizationFloorSettingName
410+
};
411+
412+
413+
try (ModelArmorClient client = ModelArmorClient.create()) {
414+
for (String name : floorSettingNames) {
415+
FloorSetting floorSetting = FloorSetting.newBuilder()
416+
.setName(name)
417+
.setFilterConfig(FilterConfig.newBuilder().build())
418+
.setEnableFloorSettingEnforcement(false)
419+
.build();
420+
421+
UpdateFloorSettingRequest request = UpdateFloorSettingRequest.newBuilder()
422+
.setFloorSetting(floorSetting)
423+
.build();
424+
425+
client.updateFloorSetting(request);
426+
}
427+
}
428+
}
429+
430+
// Tests for Folder setting snippets.
431+
@Test
432+
public void testGetOrganizationFloorSetting() throws IOException {
433+
GetOrganizationFloorSetting.getOrganizationFloorSetting(ORGANIZATION_ID);
434+
assertThat(stdOut.toString()).contains("Fetched floor setting for organization:");
435+
}
436+
437+
@Test
438+
public void testGetFolderFloorSetting() throws IOException {
439+
GetFolderFloorSetting.getFolderFloorSetting(FOLDER_ID);
440+
assertThat(stdOut.toString()).contains("Fetched floor setting for folder:");
441+
}
442+
443+
@Test
444+
public void testGetProjectFloorSetting() throws IOException {
445+
GetProjectFloorSetting.getProjectFloorSetting(PROJECT_ID);
446+
assertThat(stdOut.toString()).contains("Fetched floor setting for project:");
447+
}
448+
449+
@Test
450+
public void testUpdateOrganizationFloorSetting() throws IOException {
451+
UpdateOrganizationsFloorSetting.updateOrganizationFloorSetting(ORGANIZATION_ID);
452+
assertThat(stdOut.toString()).contains("Updated floor setting for organization:");
453+
}
454+
455+
@Test
456+
public void testUpdateFolderFloorSetting() throws IOException {
457+
UpdateFolderFloorSetting.updateFolderFloorSetting(FOLDER_ID);
458+
assertThat(stdOut.toString()).contains("Updated floor setting for folder:");
459+
}
460+
461+
462+
@Test
463+
public void testUpdateProjectFloorSetting() throws IOException {
464+
UpdateProjectFloorSetting.updateProjectFloorSetting(PROJECT_ID);
465+
assertThat(stdOut.toString()).contains("Updated floor setting for project:");
466+
}
467+
383468
// Tests for Template CRUD snippets.
384469
@Test
385470
public void testUpdateModelArmorTemplate() throws IOException {

0 commit comments

Comments
 (0)