Skip to content

Commit 657ec29

Browse files
added Neo4j container (#56)
* adding neo4j dependency * updated requirements files after adding neo4j * adding tests for neo4j * added Neo4j container * make methods and exceptions consistent with other containers * adding documentation for neo4j * just use latest Neo4j container - should always have python support * pin the docker version for CI compatibility * Restrict docker version in requirements.in. Co-authored-by: Till Hoffmann <[email protected]>
1 parent 1464853 commit 657ec29

File tree

10 files changed

+335
-187
lines changed

10 files changed

+335
-187
lines changed

README.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Currently available features:
1616
* Selenium Standalone containers
1717
* MySql Db container
1818
* MariaDb container
19+
* Neo4j container
1920
* OracleDb container
2021
* PostgreSQL Db container
2122
* Microsoft SQL Server container

docs/database.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Database containers
22
===================
33

4-
Allows to spin up database images such as MySQL, PostgreSQL, MariaDB, Oracle XE, or MongoDb.
4+
Allows to spin up database images such as MySQL, PostgreSQL, MariaDB, Oracle XE, MongoDb or Neo4j.
55

66
.. autoclass:: testcontainers.mysql.MySqlContainer
77
.. autoclass:: testcontainers.mysql.MariaDbContainer
@@ -10,3 +10,4 @@ Allows to spin up database images such as MySQL, PostgreSQL, MariaDB, Oracle XE,
1010
.. autoclass:: testcontainers.elasticsearch.ElasticSearchContainer
1111
.. autoclass:: testcontainers.mongodb.MongoDbContainer
1212
.. autoclass:: testcontainers.mssql.SqlServerContainer
13+
.. autoclass:: testcontainers.neo4j.Neo4jContainer

requirements.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
-e file:.[docker-compose,mysql,oracle,postgresql,selenium,google-cloud-pubsub,mongo,redis,mssqlserver]
1+
-e file:.[docker-compose,mysql,oracle,postgresql,selenium,google-cloud-pubsub,mongo,redis,mssqlserver,neo4j]
22
codecov>=2.1.0
33
flake8
44
pytest
55
pytest-cov
66
sphinx
7+
docker<4.3.0

requirements/3.5.txt

Lines changed: 48 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -11,80 +11,83 @@ babel==2.8.0 # via sphinx
1111
bcrypt==3.1.7 # via paramiko
1212
blindspin==2.0.1 # via testcontainers
1313
cached-property==1.5.1 # via docker-compose
14-
cachetools==4.0.0 # via google-auth
15-
certifi==2019.11.28 # via requests
16-
cffi==1.14.0 # via bcrypt, cryptography, pynacl
14+
cachetools==4.1.1 # via google-auth
15+
certifi==2020.6.20 # via requests
16+
cffi==1.14.2 # via bcrypt, cryptography, pynacl
1717
chardet==3.0.4 # via requests
18-
codecov==2.1.7 # via -r requirements.in
18+
codecov==2.1.8 # via -r requirements.in
1919
colorama==0.4.3 # via crayons
20-
coverage==5.0.3 # via codecov, pytest-cov
21-
crayons==0.3.0 # via testcontainers
22-
cryptography==2.8 # via paramiko
23-
cx-oracle==7.3.0 # via testcontainers
20+
coverage==5.2.1 # via codecov, pytest-cov
21+
crayons==0.3.1 # via testcontainers
22+
cryptography==3.0 # via paramiko
23+
cx-oracle==8.0.0 # via testcontainers
2424
deprecation==2.1.0 # via testcontainers
25-
docker-compose==1.25.4 # via testcontainers
26-
docker[ssh]==4.2.0 # via docker-compose, testcontainers
25+
distro==1.5.0 # via docker-compose
26+
docker-compose==1.26.2 # via testcontainers
27+
docker[ssh]==4.2.2 # via -r requirements.in, docker-compose, testcontainers
2728
dockerpty==0.4.1 # via docker-compose
2829
docopt==0.6.2 # via docker-compose
2930
docutils==0.16 # via sphinx
30-
entrypoints==0.3 # via flake8
31-
flake8==3.7.9 # via -r requirements.in
32-
google-api-core[grpc]==1.16.0 # via google-cloud-pubsub
33-
google-auth==1.11.2 # via google-api-core
34-
google-cloud-pubsub==1.2.0 # via testcontainers
35-
googleapis-common-protos[grpc]==1.51.0 # via google-api-core, grpc-google-iam-v1
31+
flake8==3.8.3 # via -r requirements.in
32+
google-api-core[grpc]==1.22.1 # via google-cloud-pubsub
33+
google-auth==1.20.1 # via google-api-core
34+
google-cloud-pubsub==1.7.0 # via testcontainers
35+
googleapis-common-protos[grpc]==1.52.0 # via google-api-core, grpc-google-iam-v1
3636
grpc-google-iam-v1==0.12.3 # via google-cloud-pubsub
37-
grpcio==1.27.2 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1
38-
idna==2.9 # via requests
37+
grpcio==1.31.0 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1
38+
idna==2.10 # via requests
3939
imagesize==1.2.0 # via sphinx
40-
importlib-metadata==1.5.0 # via jsonschema, pluggy, pytest
40+
importlib-metadata==1.7.0 # via flake8, jsonschema, pluggy, pytest
41+
iniconfig==1.0.1 # via pytest
4142
jinja2==2.11.2 # via sphinx
4243
jsonschema==3.2.0 # via docker-compose
4344
markupsafe==1.1.1 # via jinja2
4445
mccabe==0.6.1 # via flake8
45-
more-itertools==8.2.0 # via pytest
46-
packaging==20.1 # via deprecation, pytest, sphinx
46+
more-itertools==8.4.0 # via pytest
47+
neo4j==4.1.0 # via testcontainers
48+
packaging==20.4 # via deprecation, pytest, sphinx
4749
paramiko==2.7.1 # via docker
4850
pathlib2==2.3.5 # via pytest
4951
pluggy==0.13.1 # via pytest
50-
protobuf==3.11.3 # via google-api-core, googleapis-common-protos
51-
psycopg2-binary==2.8.4 # via testcontainers
52-
py==1.8.1 # via pytest
52+
protobuf==3.13.0 # via google-api-core, googleapis-common-protos
53+
psycopg2-binary==2.8.5 # via testcontainers
54+
py==1.9.0 # via pytest
5355
pyasn1-modules==0.2.8 # via google-auth
5456
pyasn1==0.4.8 # via pyasn1-modules, rsa
55-
pycodestyle==2.5.0 # via flake8
56-
pycparser==2.19 # via cffi
57-
pyflakes==2.1.1 # via flake8
57+
pycodestyle==2.6.0 # via flake8
58+
pycparser==2.20 # via cffi
59+
pyflakes==2.2.0 # via flake8
5860
pygments==2.6.1 # via sphinx
59-
pymongo==3.10.1 # via testcontainers
60-
pymysql==0.9.3 # via testcontainers
61-
pynacl==1.3.0 # via paramiko
61+
pymongo==3.11.0 # via testcontainers
62+
pymysql==0.10.0 # via testcontainers
63+
pynacl==1.4.0 # via paramiko
6264
pyodbc==4.0.30 # via testcontainers
63-
pyparsing==2.4.6 # via packaging
64-
pyrsistent==0.15.7 # via jsonschema
65-
pytest-cov==2.8.1 # via -r requirements.in
66-
pytest==5.3.5 # via -r requirements.in, pytest-cov
67-
pytz==2019.3 # via babel, google-api-core
68-
pyyaml==5.3 # via docker-compose
69-
redis==3.4.1 # via testcontainers
70-
requests==2.23.0 # via codecov, docker, docker-compose, google-api-core, sphinx
71-
rsa==4.0 # via google-auth
65+
pyparsing==2.4.7 # via packaging
66+
pyrsistent==0.16.0 # via jsonschema
67+
pytest-cov==2.10.1 # via -r requirements.in
68+
pytest==6.0.1 # via -r requirements.in, pytest-cov
69+
python-dotenv==0.14.0 # via docker-compose
70+
pytz==2020.1 # via babel, google-api-core, neo4j
71+
pyyaml==5.3.1 # via docker-compose
72+
redis==3.5.3 # via testcontainers
73+
requests==2.24.0 # via codecov, docker, docker-compose, google-api-core, sphinx
74+
rsa==4.6 # via google-auth
7275
selenium==3.141.0 # via testcontainers
73-
six==1.14.0 # via bcrypt, cryptography, docker, docker-compose, dockerpty, google-api-core, google-auth, grpcio, jsonschema, packaging, pathlib2, protobuf, pynacl, pyrsistent, websocket-client
76+
six==1.15.0 # via bcrypt, cryptography, docker, docker-compose, dockerpty, google-api-core, google-auth, grpcio, jsonschema, packaging, pathlib2, protobuf, pynacl, pyrsistent, websocket-client
7477
snowballstemmer==2.0.0 # via sphinx
75-
sphinx==3.0.3 # via -r requirements.in
78+
sphinx==3.2.1 # via -r requirements.in
7679
sphinxcontrib-applehelp==1.0.2 # via sphinx
7780
sphinxcontrib-devhelp==1.0.2 # via sphinx
7881
sphinxcontrib-htmlhelp==1.0.3 # via sphinx
7982
sphinxcontrib-jsmath==1.0.1 # via sphinx
8083
sphinxcontrib-qthelp==1.0.3 # via sphinx
8184
sphinxcontrib-serializinghtml==1.1.4 # via sphinx
82-
sqlalchemy==1.3.13 # via testcontainers
85+
sqlalchemy==1.3.18 # via testcontainers
8386
texttable==1.6.2 # via docker-compose
84-
urllib3==1.25.8 # via requests, selenium
85-
wcwidth==0.1.8 # via pytest
87+
toml==0.10.1 # via pytest
88+
urllib3==1.25.10 # via requests, selenium
8689
websocket-client==0.57.0 # via docker, docker-compose
87-
wrapt==1.12.0 # via testcontainers
90+
wrapt==1.12.1 # via testcontainers
8891
zipp==1.2.0 # via importlib-metadata
8992

9093
# The following packages are considered to be unsafe in a requirements file:

requirements/3.6.txt

Lines changed: 50 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -8,83 +8,86 @@
88
alabaster==0.7.12 # via sphinx
99
attrs==19.3.0 # via jsonschema, pytest
1010
babel==2.8.0 # via sphinx
11-
bcrypt==3.1.7 # via paramiko
11+
bcrypt==3.2.0 # via paramiko
1212
blindspin==2.0.1 # via testcontainers
1313
cached-property==1.5.1 # via docker-compose
14-
cachetools==4.0.0 # via google-auth
15-
certifi==2019.11.28 # via requests
16-
cffi==1.14.0 # via bcrypt, cryptography, pynacl
14+
cachetools==4.1.1 # via google-auth
15+
certifi==2020.6.20 # via requests
16+
cffi==1.14.2 # via bcrypt, cryptography, pynacl
1717
chardet==3.0.4 # via requests
18-
codecov==2.1.7 # via -r requirements.in
18+
codecov==2.1.8 # via -r requirements.in
1919
colorama==0.4.3 # via crayons
20-
coverage==5.0.3 # via codecov, pytest-cov
21-
crayons==0.3.0 # via testcontainers
22-
cryptography==2.8 # via paramiko
23-
cx-oracle==7.3.0 # via testcontainers
20+
coverage==5.2.1 # via codecov, pytest-cov
21+
crayons==0.3.1 # via testcontainers
22+
cryptography==3.0 # via paramiko
23+
cx-oracle==8.0.0 # via testcontainers
2424
deprecation==2.1.0 # via testcontainers
25-
docker-compose==1.25.4 # via testcontainers
26-
docker[ssh]==4.2.0 # via docker-compose, testcontainers
25+
distro==1.5.0 # via docker-compose
26+
docker-compose==1.26.2 # via testcontainers
27+
docker[ssh]==4.2.2 # via -r requirements.in, docker-compose, testcontainers
2728
dockerpty==0.4.1 # via docker-compose
2829
docopt==0.6.2 # via docker-compose
2930
docutils==0.16 # via sphinx
30-
entrypoints==0.3 # via flake8
31-
flake8==3.7.9 # via -r requirements.in
32-
google-api-core[grpc]==1.16.0 # via google-cloud-pubsub
33-
google-auth==1.11.2 # via google-api-core
34-
google-cloud-pubsub==1.2.0 # via testcontainers
35-
googleapis-common-protos[grpc]==1.51.0 # via google-api-core, grpc-google-iam-v1
31+
flake8==3.8.3 # via -r requirements.in
32+
google-api-core[grpc]==1.22.1 # via google-cloud-pubsub
33+
google-auth==1.20.1 # via google-api-core
34+
google-cloud-pubsub==1.7.0 # via testcontainers
35+
googleapis-common-protos[grpc]==1.52.0 # via google-api-core, grpc-google-iam-v1
3636
grpc-google-iam-v1==0.12.3 # via google-cloud-pubsub
37-
grpcio==1.27.2 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1
38-
idna==2.9 # via requests
37+
grpcio==1.31.0 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1
38+
idna==2.10 # via requests
3939
imagesize==1.2.0 # via sphinx
40-
importlib-metadata==1.5.0 # via jsonschema, pluggy, pytest
40+
importlib-metadata==1.7.0 # via flake8, jsonschema, pluggy, pytest
41+
iniconfig==1.0.1 # via pytest
4142
jinja2==2.11.2 # via sphinx
4243
jsonschema==3.2.0 # via docker-compose
4344
markupsafe==1.1.1 # via jinja2
4445
mccabe==0.6.1 # via flake8
45-
more-itertools==8.2.0 # via pytest
46-
packaging==20.1 # via deprecation, pytest, sphinx
46+
more-itertools==8.4.0 # via pytest
47+
neo4j==4.1.0 # via testcontainers
48+
packaging==20.4 # via deprecation, pytest, sphinx
4749
paramiko==2.7.1 # via docker
4850
pluggy==0.13.1 # via pytest
49-
protobuf==3.11.3 # via google-api-core, googleapis-common-protos
50-
psycopg2-binary==2.8.4 # via testcontainers
51-
py==1.8.1 # via pytest
51+
protobuf==3.13.0 # via google-api-core, googleapis-common-protos
52+
psycopg2-binary==2.8.5 # via testcontainers
53+
py==1.9.0 # via pytest
5254
pyasn1-modules==0.2.8 # via google-auth
5355
pyasn1==0.4.8 # via pyasn1-modules, rsa
54-
pycodestyle==2.5.0 # via flake8
55-
pycparser==2.19 # via cffi
56-
pyflakes==2.1.1 # via flake8
56+
pycodestyle==2.6.0 # via flake8
57+
pycparser==2.20 # via cffi
58+
pyflakes==2.2.0 # via flake8
5759
pygments==2.6.1 # via sphinx
58-
pymongo==3.10.1 # via testcontainers
59-
pymysql==0.9.3 # via testcontainers
60-
pynacl==1.3.0 # via paramiko
60+
pymongo==3.11.0 # via testcontainers
61+
pymysql==0.10.0 # via testcontainers
62+
pynacl==1.4.0 # via paramiko
6163
pyodbc==4.0.30 # via testcontainers
62-
pyparsing==2.4.6 # via packaging
63-
pyrsistent==0.15.7 # via jsonschema
64-
pytest-cov==2.8.1 # via -r requirements.in
65-
pytest==5.3.5 # via -r requirements.in, pytest-cov
66-
pytz==2019.3 # via babel, google-api-core
67-
pyyaml==5.3 # via docker-compose
68-
redis==3.4.1 # via testcontainers
69-
requests==2.23.0 # via codecov, docker, docker-compose, google-api-core, sphinx
70-
rsa==4.0 # via google-auth
64+
pyparsing==2.4.7 # via packaging
65+
pyrsistent==0.16.0 # via jsonschema
66+
pytest-cov==2.10.1 # via -r requirements.in
67+
pytest==6.0.1 # via -r requirements.in, pytest-cov
68+
python-dotenv==0.14.0 # via docker-compose
69+
pytz==2020.1 # via babel, google-api-core, neo4j
70+
pyyaml==5.3.1 # via docker-compose
71+
redis==3.5.3 # via testcontainers
72+
requests==2.24.0 # via codecov, docker, docker-compose, google-api-core, sphinx
73+
rsa==4.6 # via google-auth
7174
selenium==3.141.0 # via testcontainers
72-
six==1.14.0 # via bcrypt, cryptography, docker, docker-compose, dockerpty, google-api-core, google-auth, grpcio, jsonschema, packaging, protobuf, pynacl, pyrsistent, websocket-client
75+
six==1.15.0 # via bcrypt, cryptography, docker, docker-compose, dockerpty, google-api-core, google-auth, grpcio, jsonschema, packaging, protobuf, pynacl, pyrsistent, websocket-client
7376
snowballstemmer==2.0.0 # via sphinx
74-
sphinx==3.0.3 # via -r requirements.in
77+
sphinx==3.2.1 # via -r requirements.in
7578
sphinxcontrib-applehelp==1.0.2 # via sphinx
7679
sphinxcontrib-devhelp==1.0.2 # via sphinx
7780
sphinxcontrib-htmlhelp==1.0.3 # via sphinx
7881
sphinxcontrib-jsmath==1.0.1 # via sphinx
7982
sphinxcontrib-qthelp==1.0.3 # via sphinx
8083
sphinxcontrib-serializinghtml==1.1.4 # via sphinx
81-
sqlalchemy==1.3.13 # via testcontainers
84+
sqlalchemy==1.3.18 # via testcontainers
8285
texttable==1.6.2 # via docker-compose
83-
urllib3==1.25.8 # via requests, selenium
84-
wcwidth==0.1.8 # via pytest
86+
toml==0.10.1 # via pytest
87+
urllib3==1.25.10 # via requests, selenium
8588
websocket-client==0.57.0 # via docker, docker-compose
86-
wrapt==1.12.0 # via testcontainers
87-
zipp==3.0.0 # via importlib-metadata
89+
wrapt==1.12.1 # via testcontainers
90+
zipp==3.1.0 # via importlib-metadata
8891

8992
# The following packages are considered to be unsafe in a requirements file:
9093
# setuptools

0 commit comments

Comments
 (0)