Skip to content

Commit 19d9a39

Browse files
committed
Adding support for Cassandra and Scylla
This add the support for those cassandra based dbs and their drivers, cassandra-driver, scylla-driver Ref: https://cassandra.apache.org/ Ref: https://www.scylladb.com/ Ref: https://pypi.org/project/cassandra-driver/ Ref: https://pypi.org/project/scylla-driver/
1 parent f899846 commit 19d9a39

File tree

12 files changed

+425
-221
lines changed

12 files changed

+425
-221
lines changed

.github/workflows/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ jobs:
3131
- webdriver.py
3232
- keycloak.py
3333
- arangodb.py
34+
- scylladb.py
35+
- cassandra.py
3436
runs-on: ubuntu-latest
3537
steps:
3638
- uses: actions/checkout@v2

docs/database.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ Allows to spin up database images such as MySQL, PostgreSQL, MariaDB, Oracle XE,
1313
.. autoclass:: testcontainers.clickhouse.ClickHouseContainer
1414
.. autoclass:: testcontainers.neo4j.Neo4jContainer
1515
.. autoclass:: testcontainers.arangodb.ArangoDbContainer
16+
.. autoclass:: testcontainers.cassandra.CassandraContainer
17+
.. autoclass:: testcontainers.scylla.ScyllaContainer

requirements.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-e file:.[docker-compose,mysql,oracle,postgresql,selenium,google-cloud-pubsub,mongo,redis,mssqlserver,neo4j,kafka,rabbitmq,clickhouse,keycloak,arangodb]
1+
-e file:.[docker-compose,mysql,oracle,postgresql,selenium,google-cloud-pubsub,mongo,redis,mssqlserver,neo4j,kafka,rabbitmq,clickhouse,keycloak,arangodb,cassandra,scylla]
22
codecov>=2.1.0
33
cryptography<37
44
flake8<3.8.0 # 3.8.0 adds a dependency on importlib-metadata which conflicts with other packages.

requirements/3.10.txt

Lines changed: 73 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -16,43 +16,44 @@ async-generator==1.10
1616
# trio-websocket
1717
async-timeout==4.0.2
1818
# via redis
19-
attrs==21.4.0
19+
attrs==22.1.0
2020
# via
2121
# jsonschema
2222
# outcome
2323
# pytest
2424
# trio
25-
babel==2.10.1
25+
babel==2.10.3
2626
# via sphinx
27-
bcrypt==3.2.2
27+
bcrypt==4.0.0
2828
# via paramiko
2929
cachetools==5.2.0
3030
# via google-auth
31-
certifi==2022.5.18.1
31+
cassandra-driver==3.25.0
32+
# via testcontainers
33+
certifi==2022.9.14
3234
# via
3335
# requests
34-
# urllib3
35-
cffi==1.15.0
36+
# selenium
37+
cffi==1.15.1
3638
# via
37-
# bcrypt
3839
# cryptography
3940
# pynacl
40-
charset-normalizer==2.0.12
41+
charset-normalizer==2.1.1
4142
# via requests
42-
clickhouse-driver==0.2.3
43+
click==8.1.3
44+
# via geomet
45+
clickhouse-driver==0.2.4
4346
# via testcontainers
4447
codecov==2.1.12
4548
# via -r requirements.in
46-
coverage[toml]==6.4.1
49+
coverage[toml]==6.4.4
4750
# via
4851
# codecov
4952
# pytest-cov
5053
cryptography==36.0.2
5154
# via
5255
# -r requirements.in
5356
# paramiko
54-
# pyopenssl
55-
# urllib3
5657
cx-oracle==8.3.0
5758
# via testcontainers
5859
deprecated==1.2.13
@@ -61,7 +62,7 @@ deprecation==2.1.0
6162
# via testcontainers
6263
distro==1.7.0
6364
# via docker-compose
64-
docker[ssh]==5.0.3
65+
docker[ssh]==6.0.0
6566
# via
6667
# docker-compose
6768
# testcontainers
@@ -71,45 +72,51 @@ dockerpty==0.4.1
7172
# via docker-compose
7273
docopt==0.6.2
7374
# via docker-compose
74-
docutils==0.18.1
75+
docutils==0.19
7576
# via sphinx
76-
ecdsa==0.17.0
77+
ecdsa==0.18.0
7778
# via python-jose
7879
entrypoints==0.3
7980
# via flake8
8081
flake8==3.7.9
8182
# via -r requirements.in
82-
google-api-core[grpc]==2.8.1
83+
geomet==0.2.1.post1
84+
# via
85+
# cassandra-driver
86+
# scylla-driver
87+
google-api-core[grpc]==2.10.1
8388
# via google-cloud-pubsub
84-
google-auth==2.6.6
89+
google-auth==2.11.0
8590
# via google-api-core
86-
google-cloud-pubsub==1.7.1
91+
google-cloud-pubsub==2.13.6
8792
# via testcontainers
88-
googleapis-common-protos[grpc]==1.56.2
93+
googleapis-common-protos[grpc]==1.56.4
8994
# via
9095
# google-api-core
9196
# grpc-google-iam-v1
9297
# grpcio-status
93-
greenlet==1.1.2
98+
greenlet==1.1.3
9499
# via sqlalchemy
95100
grpc-google-iam-v1==0.12.4
96101
# via google-cloud-pubsub
97-
grpcio==1.46.3
102+
grpcio==1.49.0
98103
# via
99104
# google-api-core
105+
# google-cloud-pubsub
100106
# googleapis-common-protos
101107
# grpc-google-iam-v1
102108
# grpcio-status
103-
grpcio-status==1.46.3
104-
# via google-api-core
109+
grpcio-status==1.49.0
110+
# via
111+
# google-api-core
112+
# google-cloud-pubsub
105113
h11==0.13.0
106114
# via wsproto
107-
idna==3.3
115+
idna==3.4
108116
# via
109117
# requests
110118
# trio
111-
# urllib3
112-
imagesize==1.3.0
119+
imagesize==1.4.1
113120
# via sphinx
114121
iniconfig==1.1.1
115122
# via pytest
@@ -123,29 +130,34 @@ markupsafe==2.1.1
123130
# via jinja2
124131
mccabe==0.6.1
125132
# via flake8
126-
neo4j==4.4.4
133+
neo4j==5.0.0
127134
# via testcontainers
128-
outcome==1.1.0
135+
outcome==1.2.0
129136
# via trio
130137
packaging==21.3
131138
# via
132139
# deprecation
140+
# docker
133141
# pytest
134142
# redis
135143
# sphinx
136144
paramiko==2.11.0
137145
# via docker
138146
pg8000==1.29.1
139147
# via -r requirements.in
140-
pika==1.2.1
148+
pika==1.3.0
141149
# via testcontainers
142150
pluggy==1.0.0
143151
# via pytest
144-
protobuf==3.20.1
152+
proto-plus==1.22.1
153+
# via google-cloud-pubsub
154+
protobuf==4.21.6
145155
# via
146156
# google-api-core
157+
# google-cloud-pubsub
147158
# googleapis-common-protos
148159
# grpcio-status
160+
# proto-plus
149161
psycopg2-binary==2.9.3
150162
# via testcontainers
151163
py==1.11.0
@@ -163,52 +175,52 @@ pycparser==2.21
163175
# via cffi
164176
pyflakes==2.1.1
165177
# via flake8
166-
pygments==2.12.0
178+
pygments==2.13.0
167179
# via sphinx
168-
pyjwt==2.4.0
180+
pyjwt==2.5.0
169181
# via python-arango
170-
pymongo==4.1.1
182+
pymongo==4.2.0
171183
# via testcontainers
172184
pymssql==2.2.5
173185
# via testcontainers
174186
pymysql==1.0.2
175187
# via testcontainers
176188
pynacl==1.5.0
177189
# via paramiko
178-
pyopenssl==22.0.0
179-
# via urllib3
180190
pyparsing==3.0.9
181191
# via packaging
182192
pyrsistent==0.18.1
183193
# via jsonschema
184194
pysocks==1.7.1
185195
# via urllib3
186-
pytest==7.1.2
196+
pytest==7.1.3
187197
# via
188198
# -r requirements.in
189199
# pytest-cov
190200
pytest-cov==3.0.0
191201
# via -r requirements.in
192-
python-arango==7.3.4
202+
python-arango==7.4.1
193203
# via testcontainers
194-
python-dotenv==0.20.0
204+
python-dotenv==0.21.0
195205
# via docker-compose
196206
python-jose==3.3.0
197207
# via python-keycloak
198-
python-keycloak==1.5.0
208+
python-keycloak==2.5.0
199209
# via testcontainers
200-
pytz==2022.1
210+
pytz==2022.2.1
201211
# via
202212
# babel
203213
# clickhouse-driver
204214
# neo4j
205215
pytz-deprecation-shim==0.1.0.post0
206216
# via tzlocal
207217
pyyaml==5.4.1
208-
# via docker-compose
209-
redis==4.3.3
218+
# via
219+
# docker-compose
220+
# scylla-driver
221+
redis==4.3.4
210222
# via testcontainers
211-
requests==2.27.1
223+
requests==2.28.1
212224
# via
213225
# codecov
214226
# docker
@@ -219,31 +231,38 @@ requests==2.27.1
219231
# requests-toolbelt
220232
# sphinx
221233
requests-toolbelt==0.9.1
222-
# via python-arango
223-
rsa==4.8
234+
# via
235+
# python-arango
236+
# python-keycloak
237+
rsa==4.9
224238
# via
225239
# google-auth
226240
# python-jose
227241
scramp==1.4.1
228242
# via pg8000
229-
selenium==4.2.0
243+
scylla-driver==3.25.5
244+
# via testcontainers
245+
selenium==4.4.3
230246
# via testcontainers
231247
six==1.16.0
232248
# via
249+
# cassandra-driver
233250
# dockerpty
234251
# ecdsa
252+
# geomet
235253
# google-auth
236254
# grpcio
237255
# jsonschema
238256
# paramiko
257+
# scylla-driver
239258
# websocket-client
240-
sniffio==1.2.0
259+
sniffio==1.3.0
241260
# via trio
242261
snowballstemmer==2.2.0
243262
# via sphinx
244263
sortedcontainers==2.4.0
245264
# via trio
246-
sphinx==5.0.1
265+
sphinx==5.1.1
247266
# via -r requirements.in
248267
sphinxcontrib-applehelp==1.0.2
249268
# via sphinx
@@ -257,26 +276,27 @@ sphinxcontrib-qthelp==1.0.3
257276
# via sphinx
258277
sphinxcontrib-serializinghtml==1.1.5
259278
# via sphinx
260-
sqlalchemy==1.4.37
279+
sqlalchemy==1.4.41
261280
# via testcontainers
262281
texttable==1.6.4
263282
# via docker-compose
264283
tomli==2.0.1
265284
# via
266285
# coverage
267286
# pytest
268-
trio==0.20.0
287+
trio==0.21.0
269288
# via
270289
# selenium
271290
# trio-websocket
272291
trio-websocket==0.9.2
273292
# via selenium
274-
tzdata==2022.1
293+
tzdata==2022.2
275294
# via pytz-deprecation-shim
276295
tzlocal==4.2
277296
# via clickhouse-driver
278-
urllib3[secure,socks]==1.26.9
297+
urllib3[socks]==1.26.12
279298
# via
299+
# docker
280300
# python-arango
281301
# python-keycloak
282302
# requests
@@ -289,7 +309,7 @@ wrapt==1.14.1
289309
# via
290310
# deprecated
291311
# testcontainers
292-
wsproto==1.1.0
312+
wsproto==1.2.0
293313
# via trio-websocket
294314

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

0 commit comments

Comments
 (0)