Skip to content

Commit

Permalink
fixed upgrade test failure when previous version not yet released
Browse files Browse the repository at this point in the history
  • Loading branch information
jennyowen committed Jul 10, 2023
1 parent 27d459b commit b01e260
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions src/test/java/com/neo4j/docker/coredb/TestUpgrade.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.neo4j.docker.coredb;

import static org.junit.jupiter.api.Assumptions.assumeTrue;

import com.github.dockerjava.api.command.CreateContainerCmd;
import com.github.dockerjava.api.exception.NotFoundException;
import com.github.dockerjava.api.model.Bind;
import com.neo4j.docker.utils.DatabaseIO;
import com.neo4j.docker.utils.Neo4jVersion;
Expand All @@ -15,13 +17,15 @@
import java.util.Random;
import java.util.function.Consumer;

import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.output.Slf4jLogConsumer;
import org.testcontainers.images.RemoteDockerImage;
import org.testcontainers.utility.DockerImageName;

public class TestUpgrade
Expand Down Expand Up @@ -64,9 +68,23 @@ private static List<Neo4jVersion> upgradableNeo4jVersions()

private static void assumeUpgradeSupported( Neo4jVersion upgradeFrom )
{
assumeTrue( TestSettings.NEO4J_VERSION.isNewerThan( upgradeFrom ),
Assumptions.assumeTrue( TestSettings.NEO4J_VERSION.isNewerThan( upgradeFrom ),
"cannot upgrade from " + upgradeFrom + " to " + TestSettings.NEO4J_VERSION);
if(isArm()) assumeTrue( upgradeFrom.isAtLeastVersion( new Neo4jVersion( 4, 4, 0 ) ), "ARM only supported since 4.4" );
if(isArm()) Assumptions.assumeTrue( upgradeFrom.isAtLeastVersion( new Neo4jVersion( 4, 4, 0 ) ), "ARM only supported since 4.4" );

// if we're preparing a new release, then it's possible the version we're upgrading from hasn't been released to
// dockerhub, so the test will fail when pulling the upgrade-from image.
// If this happens we should ignore rather than fail the test.
try
{
RemoteDockerImage img = new RemoteDockerImage( getUpgradeFromImage( upgradeFrom ) );
img.get(); // docker pull
}
catch ( NotFoundException nfex )
{
// purposely fail an assumption if the image was not found
Assumptions.assumeTrue( false, "neo4j:"+upgradeFrom+" is not available on dockerhub yet. Ignoring test.");
}
}

private static boolean isArm()
Expand Down Expand Up @@ -197,7 +215,7 @@ private void testUpgradeNamedVolumes( Neo4jVersion upgradeFrom )
}
}

private DockerImageName getUpgradeFromImage( Neo4jVersion ver)
private static DockerImageName getUpgradeFromImage( Neo4jVersion ver)
{
if(TestSettings.EDITION == TestSettings.Edition.ENTERPRISE)
{
Expand Down

0 comments on commit b01e260

Please sign in to comment.