Skip to content

Commit b6b76fb

Browse files
committed
chore: skip tests that require a later version
1 parent 8e69845 commit b6b76fb

File tree

3 files changed

+50
-6
lines changed

3 files changed

+50
-6
lines changed

src/it/java/io/weaviate/ConcurrentTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@
1010

1111
import org.apache.commons.lang3.RandomStringUtils;
1212
import org.assertj.core.api.Assertions;
13+
import org.assertj.core.api.Assumptions;
1314
import org.junit.Rule;
1415
import org.junit.rules.TestName;
1516

17+
import io.weaviate.client6.v1.internal.VersionSupport.SemanticVersion;
18+
import io.weaviate.containers.Weaviate;
19+
1620
/**
1721
* ConcurrentTest is the base class for integration tests, which provides
1822
* utility methods to uniqualize collections and objects created in the
@@ -110,4 +114,24 @@ public static void eventually(Callable<Boolean> cond, int intervalMillis, int ti
110114
throw new RuntimeException(ex);
111115
}
112116
}
117+
118+
/**
119+
* Skip the test if the version that the {@link Weaviate}
120+
* container is running is older than the required one.
121+
*/
122+
public static void requireAtLeast(int major, int minor) {
123+
var required = new SemanticVersion(major, minor);
124+
var actual = SemanticVersion.of(Weaviate.VERSION);
125+
Assumptions.assumeThat(actual)
126+
.as("requires at least %s, but running %s", required, actual)
127+
.isGreaterThanOrEqualTo(required);
128+
}
129+
130+
public static void requireAtLeast(int major, int minor, Runnable r) {
131+
var required = new SemanticVersion(major, minor);
132+
var actual = SemanticVersion.of(Weaviate.VERSION);
133+
if (actual.compareTo(required) >= 0) {
134+
r.run();
135+
}
136+
}
113137
}

src/it/java/io/weaviate/integration/RbacITest.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.weaviate.integration;
22

33
import java.io.IOException;
4-
import java.util.Arrays;
4+
import java.util.List;
55

66
import org.assertj.core.api.Assertions;
77
import org.assertj.core.api.InstanceOfAssertFactories;
@@ -64,19 +64,22 @@ public void test_roles_Lifecycle() throws IOException {
6464
var myCollection = "Things";
6565
var nsRole = ns("VectorOwner");
6666

67-
Permission[] permissions = new Permission[] {
67+
List<Permission> permissions = List.of(
6868
Permission.aliases("ThingsAlias", myCollection, AliasesPermission.Action.CREATE),
6969
Permission.backups(myCollection, BackupsPermission.Action.MANAGE),
7070
Permission.cluster(ClusterPermission.Action.READ),
7171
Permission.nodes(myCollection, NodesPermission.Action.READ),
7272
Permission.roles(VIEWER_ROLE, Scope.MATCH, RolesPermission.Action.CREATE),
7373
Permission.collections(myCollection, CollectionsPermission.Action.CREATE),
7474
Permission.data(myCollection, DataPermission.Action.UPDATE),
75-
Permission.groups("my-group", GroupType.OIDC, GroupsPermission.Action.READ),
7675
Permission.tenants(myCollection, "my-tenant", TenantsPermission.Action.DELETE),
7776
Permission.users("my-user", UsersPermission.Action.READ),
78-
Permission.replicate(myCollection, "my-shard", ReplicatePermission.Action.READ),
79-
};
77+
Permission.replicate(myCollection, "my-shard", ReplicatePermission.Action.READ));
78+
79+
requireAtLeast(1, 33, () -> {
80+
permissions.add(
81+
Permission.groups("my-group", GroupType.OIDC, GroupsPermission.Action.READ));
82+
});
8083

8184
// Act: create role
8285
client.roles.create(nsRole, permissions);
@@ -86,7 +89,7 @@ public void test_roles_Lifecycle() throws IOException {
8689
.as("created role")
8790
.returns(nsRole, Role::name)
8891
.extracting(Role::permissions, InstanceOfAssertFactories.list(Permission.class))
89-
.containsAll(Arrays.asList(permissions));
92+
.containsAll(permissions);
9093

9194
// Act:: add extra permissions
9295
var extra = new Permission[] {
@@ -150,6 +153,8 @@ public void test_roles_userAssignments() throws IOException {
150153

151154
@Test
152155
public void test_groups() throws IOException {
156+
requireAtLeast(1, 33);
157+
153158
var mediaGroup = "./media-group";
154159
var friendGroup = "./friend-group";
155160

src/main/java/io/weaviate/client6/v1/api/rbac/roles/WeaviateRolesClient.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,21 @@ public WeaviateRolesClient(RestTransport restTransport) {
2929
* or the server being unavailable.
3030
*/
3131
public void create(String roleName, Permission... permissions) throws IOException {
32+
create(roleName, Arrays.asList(permissions));
33+
}
34+
35+
/**
36+
* Create a new role.
37+
*
38+
* @param roleName Role name.
39+
* @param permissions Permissions granted to the role.
40+
* @throws WeaviateApiException in case the server returned with an
41+
* error status code.
42+
* @throws IOException in case the request was not sent successfully
43+
* due to a malformed request, a networking error
44+
* or the server being unavailable.
45+
*/
46+
public void create(String roleName, List<Permission> permissions) throws IOException {
3247
var role = new Role(roleName, permissions);
3348
this.restTransport.performRequest(new CreateRoleRequest(role), CreateRoleRequest._ENDPOINT);
3449
}

0 commit comments

Comments
 (0)