3 releases (breaking)
0.3.0 | May 22, 2024 |
---|---|
0.2.0 | Oct 6, 2023 |
0.1.0 | Jun 7, 2023 |
#378 in Testing
27KB
206 lines
neo4j_testcontainers
Neo4j image for testcontainers.
This image is based on the official Neo4j image.
The default user is neo4j
and the default password is neo
.
The default version is 5
.
Example
use neo4j_testcontainers::{prelude::*, runners::SyncRunner, Neo4j};
let container = Neo4j::default().start();
let uri = container.image().bolt_uri_ipv4();
let auth_user = container.image().user();
let auth_pass = container.image().password();
// connect to Neo4j with the uri, user and pass
Testcontainers Module
This crate builds on top of the neo4j
image from testcontainers-module.
It provides a few extension methods that are too specific to Neo4j to be included in the generic testcontainers module.
This crate also exports a few types that are required to get you started without having to add extra dependencies to either testcontainers-modules
or testcontainers
:
// Those types are exported
pub use testcontainers_modules::{
neo4j::{Neo4j, Neo4jImage},
testcontainers::runners,
testcontainers::RunnableImage,
};
// ... on your end: use the exported types
use neo4j_testcontainers::{runners::SyncRunner, Neo4j, RunnableImage};
Neo4j Version
The version of the image can be set with the NEO4J_VERSION_TAG
environment variable.
The default version is 5
.
The available versions can be found on Docker Hub.
The used version can be retrieved with the version
method.
Auth
The default user is neo4j
and the default password is neo
.
The used user can be retrieved with the user
method.
The used password can be retrieved with the pass
method.
Environment variables
The following environment variables are supported:
NEO4J_VERSION_TAG
: The default version of the image to use.NEO4J_TEST_USER
: The default user to use for authentication.NEO4J_TEST_PASS
: The default password to use for authentication.
Neo4j Labs Plugins
Neo4j offers built-in support for Neo4j Labs plugins.
The method with_neo4j_labs_plugin
can be used to define them.
Supported plugins are APOC, APOC Core, Bloom, Streams, Graph Data Science, and Neo Semantics.
Enterprise edition
In order to use Neo4j Enterprise Edition for the testcontainer
, you can configure it on the RunnableImage
:
use neo4j_testcontainers::{prelude::*, runners::SyncRunner, Neo4j, RunnableImage};
let neo4j = RunnableImage::from(Neo4j::default());
let neo4j = neo4j.with_enterprise_edition().expect("license not accepted");
let container = neo4j.start();
Before enabling this, have a read through the Neo4j Licensing page to understand the terms under which you can use the Enterprise edition.
You can accept the terms and condition of the enterprise version by adding a file named container-license-acceptance.txt
to the root of your cargo workspace, containing the text neo4j:5-enterprise
in one line.
The content of the file must be the same as the actual image that is being used, so if you change the version, you also need to change to content of this file.
MSRV
The crate has a minimum supported Rust version (MSRV) of 1.70.0
.
A change in the MSRV in not considered a breaking change. For versions past 1.0.0, a change in the MSRV can be done in a minor version increment (1.1.3 -> 1.2.0) for versions before 1.0.0, a change in the MSRV can be done in a patch version increment (0.1.3 -> 0.1.4).
License
neo4j_testcontainers is licensed under either of the following, at your option:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
Dependencies
~21–33MB
~608K SLoC