From 30a1f3e278524859d201582e70fc1ee9753aa0f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B4mulo=20Jales?= Date: Tue, 21 Mar 2023 16:07:06 +0100 Subject: [PATCH] Add memcached container --- .github/workflows/main.yml | 1 + README.rst | 1 + memcached/README.rst | 1 + memcached/setup.py | 17 ++++ .../testcontainers/memcached/__init__.py | 59 ++++++++++++ memcached/tests/test_memcached.py | 25 ++++++ requirements.in | 1 + requirements/3.10.txt | 89 +++++++++--------- requirements/3.7.txt | 88 +++++++++--------- requirements/3.8.txt | 90 +++++++++---------- requirements/3.9.txt | 89 +++++++++--------- 11 files changed, 278 insertions(+), 183 deletions(-) create mode 100644 memcached/README.rst create mode 100644 memcached/setup.py create mode 100644 memcached/testcontainers/memcached/__init__.py create mode 100644 memcached/tests/test_memcached.py diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 15d79b937..b32adf67d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,6 +25,7 @@ jobs: - kafka - keycloak - localstack + - memcached - meta - minio - mongodb diff --git a/README.rst b/README.rst index 081456879..bfb4332dc 100644 --- a/README.rst +++ b/README.rst @@ -22,6 +22,7 @@ testcontainers-python facilitates the use of Docker containers for functional an kafka/README keycloak/README localstack/README + memcached/README minio/README mongodb/README mssql/README diff --git a/memcached/README.rst b/memcached/README.rst new file mode 100644 index 000000000..83cd9c82e --- /dev/null +++ b/memcached/README.rst @@ -0,0 +1 @@ +.. autoclass:: testcontainers.memcached.MemcachedContainer diff --git a/memcached/setup.py b/memcached/setup.py new file mode 100644 index 000000000..63d300c28 --- /dev/null +++ b/memcached/setup.py @@ -0,0 +1,17 @@ +from setuptools import setup, find_namespace_packages + +description = "Memcached component of testcontainers-python." + +setup( + name="testcontainers-memcached", + version="0.0.1rc1", + packages=find_namespace_packages(), + description=description, + long_description=description, + long_description_content_type="text/x-rst", + url="https://github.com/testcontainers/testcontainers-python", + install_requires=[ + "testcontainers-core", + ], + python_requires=">=3.7", +) diff --git a/memcached/testcontainers/memcached/__init__.py b/memcached/testcontainers/memcached/__init__.py new file mode 100644 index 000000000..52b1bf6a0 --- /dev/null +++ b/memcached/testcontainers/memcached/__init__.py @@ -0,0 +1,59 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +import socket + +from testcontainers.core.container import DockerContainer +from testcontainers.core.waiting_utils import wait_container_is_ready + + +class MemcachedNotReady(Exception): + pass + + +class MemcachedContainer(DockerContainer): + """ + Test container for Memcached. The example below spins up a Memcached server + + Example: + + .. doctest:: + + >>> from testcontainers.memcached import MemcachedContainer + + >>> with MemcachedContainer() as memcached_container: + ... host, port = memcached_container.get_host_and_port() + """ + + def __init__(self, image="memcached:latest", port_to_expose=11211, **kwargs): + super(MemcachedContainer, self).__init__(image, **kwargs) + self.port_to_expose = port_to_expose + self.with_exposed_ports(port_to_expose) + + @wait_container_is_ready(MemcachedNotReady) + def _connect(self): + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + host = self.get_container_host_ip() + port = int(self.get_exposed_port(self.port_to_expose)) + s.connect((host, port)) + s.sendall(b"stats\n\r") + data = s.recv(1024) + if len(data) == 0: + raise MemcachedNotReady("Memcached not ready yet") + + def start(self): + super().start() + self._connect() + return self + + def get_host_and_port(self): + return self.get_container_host_ip(), int(self.get_exposed_port(self.port_to_expose)) diff --git a/memcached/tests/test_memcached.py b/memcached/tests/test_memcached.py new file mode 100644 index 000000000..ad379c5fa --- /dev/null +++ b/memcached/tests/test_memcached.py @@ -0,0 +1,25 @@ +import socket + +from memcached.testcontainers.memcached import MemcachedContainer + + +def test_memcached_host_and_exposed_port(): + with MemcachedContainer() as memcached: + host, port = memcached.get_host_and_port() + assert host == 'localhost' + assert port != 11211 + + +def test_memcached_can_connect_and_retrieve_data(): + with MemcachedContainer() as memcached: + host, port = memcached.get_host_and_port() + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.connect((host, port)) + s.sendall(b"stats\n\r") + data = s.recv(1024) + assert len(data) > 0, 'We should have received some data from memcached' + + pid_stat, uptime_stat, *_ = data.decode().split('\r\n') + + assert pid_stat.startswith('STAT pid') + assert uptime_stat.startswith('STAT uptime') diff --git a/requirements.in b/requirements.in index 0204fdb8e..9c9fe8ecb 100644 --- a/requirements.in +++ b/requirements.in @@ -8,6 +8,7 @@ -e file:kafka -e file:keycloak -e file:localstack +-e file:memcached -e file:meta -e file:minio -e file:mongodb diff --git a/requirements/3.10.txt b/requirements/3.10.txt index 85903304c..2d9454176 100644 --- a/requirements/3.10.txt +++ b/requirements/3.10.txt @@ -27,6 +27,7 @@ # testcontainers-kafka # testcontainers-keycloak # testcontainers-localstack + # testcontainers-memcached # testcontainers-minio # testcontainers-mongodb # testcontainers-mssql @@ -49,6 +50,8 @@ # via -r requirements.in -e file:localstack # via -r requirements.in +-e file:memcached + # via -r requirements.in -e file:minio # via -r requirements.in -e file:mongodb @@ -78,9 +81,7 @@ alabaster==0.7.13 asn1crypto==1.5.1 # via scramp async-generator==1.10 - # via - # trio - # trio-websocket + # via trio async-timeout==4.0.2 # via redis attrs==22.2.0 @@ -90,12 +91,10 @@ attrs==22.2.0 # pytest # trio azure-core==1.26.3 - # via - # azure-storage-blob - # msrest -azure-storage-blob==12.14.1 + # via azure-storage-blob +azure-storage-blob==12.15.0 # via testcontainers-azurite -babel==2.11.0 +babel==2.12.1 # via sphinx bcrypt==4.0.1 # via paramiko @@ -106,7 +105,6 @@ cachetools==5.3.0 certifi==2022.12.7 # via # minio - # msrest # opensearch-py # requests # selenium @@ -114,13 +112,13 @@ cffi==1.15.1 # via # cryptography # pynacl -charset-normalizer==3.0.1 +charset-normalizer==3.1.0 # via requests clickhouse-driver==0.2.5 # via testcontainers-clickhouse codecov==2.1.12 # via -r requirements.in -coverage[toml]==7.1.0 +coverage[toml]==7.2.2 # via # codecov # pytest-cov @@ -132,6 +130,8 @@ cryptography==36.0.2 # secretstorage cx-oracle==8.3.0 # via testcontainers-oracle +deprecation==2.1.0 + # via python-keycloak distro==1.8.0 # via docker-compose dnspython==2.3.0 @@ -154,19 +154,20 @@ ecdsa==0.18.0 # via python-jose entrypoints==0.3 # via flake8 -exceptiongroup==1.1.0 +exceptiongroup==1.1.1 # via # pytest # trio + # trio-websocket flake8==3.7.9 # via -r requirements.in google-api-core[grpc]==2.11.0 # via google-cloud-pubsub -google-auth==2.16.0 +google-auth==2.16.2 # via google-api-core google-cloud-pubsub==1.7.2 # via testcontainers-gcp -googleapis-common-protos[grpc]==1.58.0 +googleapis-common-protos[grpc]==1.59.0 # via # google-api-core # grpc-google-iam-v1 @@ -175,7 +176,7 @@ greenlet==2.0.2 # via sqlalchemy grpc-google-iam-v1==0.12.6 # via google-cloud-pubsub -grpcio==1.51.1 +grpcio==1.51.3 # via # google-api-core # googleapis-common-protos @@ -191,14 +192,14 @@ idna==3.4 # trio imagesize==1.4.1 # via sphinx -importlib-metadata==6.0.0 +importlib-metadata==6.1.0 # via # keyring # twine iniconfig==2.0.0 # via pytest isodate==0.6.1 - # via msrest + # via azure-storage-blob jaraco-classes==3.2.3 # via keyring jeepney==0.8.0 @@ -213,7 +214,7 @@ kafka-python==2.0.2 # via testcontainers-kafka keyring==23.13.1 # via twine -markdown-it-py==2.1.0 +markdown-it-py==2.2.0 # via rich markupsafe==2.1.2 # via jinja2 @@ -223,24 +224,21 @@ mdurl==0.1.2 # via markdown-it-py minio==7.1.13 # via testcontainers-minio -more-itertools==9.0.0 +more-itertools==9.1.0 # via jaraco-classes -msrest==0.7.1 - # via azure-storage-blob -neo4j==5.5.0 +neo4j==5.6.0 # via testcontainers-neo4j -oauthlib==3.2.2 - # via requests-oauthlib -opensearch-py==2.1.1 +opensearch-py==2.2.0 # via testcontainers-opensearch outcome==1.2.0 # via trio packaging==23.0 # via + # deprecation # docker # pytest # sphinx -paramiko==3.0.0 +paramiko==3.1.0 # via docker pg8000==1.29.4 # via -r requirements.in @@ -291,25 +289,26 @@ pyrsistent==0.19.3 # via jsonschema pysocks==1.7.1 # via urllib3 -pytest==7.2.1 +pytest==7.2.2 # via # -r requirements.in # pytest-cov pytest-cov==4.0.0 # via -r requirements.in -python-arango==7.5.6 +python-arango==7.5.7 # via testcontainers-arangodb python-dateutil==2.8.2 - # via pg8000 + # via + # opensearch-py + # pg8000 python-dotenv==0.21.1 # via docker-compose python-jose==3.3.0 # via python-keycloak -python-keycloak==2.12.0 +python-keycloak==2.14.0 # via testcontainers-keycloak pytz==2022.7.1 # via - # babel # clickhouse-driver # neo4j pytz-deprecation-shim==0.1.0.post0 @@ -318,7 +317,7 @@ pyyaml==5.4.1 # via docker-compose readme-renderer==37.3 # via twine -redis==4.5.1 +redis==4.5.2 # via testcontainers-redis requests==2.28.2 # via @@ -327,24 +326,20 @@ requests==2.28.2 # docker # docker-compose # google-api-core - # msrest # opensearch-py # python-arango # python-keycloak - # requests-oauthlib # requests-toolbelt # sphinx # twine -requests-oauthlib==1.3.1 - # via msrest -requests-toolbelt==0.9.1 +requests-toolbelt==0.10.1 # via # python-arango # python-keycloak # twine rfc3986==2.0.0 # via twine -rich==13.3.1 +rich==13.3.2 # via twine rsa==4.9 # via @@ -354,7 +349,7 @@ scramp==1.4.4 # via pg8000 secretstorage==3.3.3 # via keyring -selenium==4.8.0 +selenium==4.8.2 # via testcontainers-selenium six==1.16.0 # via @@ -365,6 +360,7 @@ six==1.16.0 # google-auth # isodate # jsonschema + # opensearch-py # python-dateutil # websocket-client sniffio==1.3.0 @@ -387,7 +383,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlalchemy==2.0.3 +sqlalchemy==2.0.7 # via # testcontainers-mssql # testcontainers-mysql @@ -403,19 +399,20 @@ trio==0.22.0 # via # selenium # trio-websocket -trio-websocket==0.9.2 +trio-websocket==0.10.2 # via selenium twine==4.0.2 # via -r requirements.in typing-extensions==4.5.0 # via # azure-core + # azure-storage-blob # sqlalchemy tzdata==2022.7 # via pytz-deprecation-shim -tzlocal==4.2 +tzlocal==4.3 # via clickhouse-driver -urllib3[socks]==1.26.14 +urllib3[socks]==1.26.15 # via # docker # minio @@ -431,13 +428,13 @@ websocket-client==0.59.0 # via # docker # docker-compose -wheel==0.38.4 +wheel==0.40.0 # via -r requirements.in -wrapt==1.14.1 +wrapt==1.15.0 # via testcontainers-core wsproto==1.2.0 # via trio-websocket -zipp==3.13.0 +zipp==3.15.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/3.7.txt b/requirements/3.7.txt index 18dd9d49a..4b1bb991b 100644 --- a/requirements/3.7.txt +++ b/requirements/3.7.txt @@ -27,6 +27,7 @@ # testcontainers-kafka # testcontainers-keycloak # testcontainers-localstack + # testcontainers-memcached # testcontainers-minio # testcontainers-mongodb # testcontainers-mssql @@ -49,6 +50,8 @@ # via -r requirements.in -e file:localstack # via -r requirements.in +-e file:memcached + # via -r requirements.in -e file:minio # via -r requirements.in -e file:mongodb @@ -78,9 +81,7 @@ alabaster==0.7.13 asn1crypto==1.5.1 # via scramp async-generator==1.10 - # via - # trio - # trio-websocket + # via trio async-timeout==4.0.2 # via redis attrs==22.2.0 @@ -90,12 +91,10 @@ attrs==22.2.0 # pytest # trio azure-core==1.26.3 - # via - # azure-storage-blob - # msrest -azure-storage-blob==12.14.1 + # via azure-storage-blob +azure-storage-blob==12.15.0 # via testcontainers-azurite -babel==2.11.0 +babel==2.12.1 # via sphinx backports-zoneinfo==0.2.1 # via @@ -112,7 +111,6 @@ cachetools==5.3.0 certifi==2022.12.7 # via # minio - # msrest # opensearch-py # requests # selenium @@ -120,13 +118,13 @@ cffi==1.15.1 # via # cryptography # pynacl -charset-normalizer==3.0.1 +charset-normalizer==3.1.0 # via requests clickhouse-driver==0.2.5 # via testcontainers-clickhouse codecov==2.1.12 # via -r requirements.in -coverage[toml]==7.1.0 +coverage[toml]==7.2.2 # via # codecov # pytest-cov @@ -138,6 +136,8 @@ cryptography==36.0.2 # secretstorage cx-oracle==8.3.0 # via testcontainers-oracle +deprecation==2.1.0 + # via python-keycloak distro==1.8.0 # via docker-compose dnspython==2.3.0 @@ -160,19 +160,20 @@ ecdsa==0.18.0 # via python-jose entrypoints==0.3 # via flake8 -exceptiongroup==1.1.0 +exceptiongroup==1.1.1 # via # pytest # trio + # trio-websocket flake8==3.7.9 # via -r requirements.in google-api-core[grpc]==2.11.0 # via google-cloud-pubsub -google-auth==2.16.0 +google-auth==2.16.2 # via google-api-core google-cloud-pubsub==1.7.2 # via testcontainers-gcp -googleapis-common-protos[grpc]==1.58.0 +googleapis-common-protos[grpc]==1.59.0 # via # google-api-core # grpc-google-iam-v1 @@ -181,7 +182,7 @@ greenlet==2.0.2 # via sqlalchemy grpc-google-iam-v1==0.12.6 # via google-cloud-pubsub -grpcio==1.51.1 +grpcio==1.51.3 # via # google-api-core # googleapis-common-protos @@ -197,7 +198,7 @@ idna==3.4 # trio imagesize==1.4.1 # via sphinx -importlib-metadata==6.0.0 +importlib-metadata==6.1.0 # via # jsonschema # keyring @@ -209,12 +210,12 @@ importlib-metadata==6.0.0 # sphinx # sqlalchemy # twine -importlib-resources==5.10.2 +importlib-resources==5.12.0 # via keyring iniconfig==2.0.0 # via pytest isodate==0.6.1 - # via msrest + # via azure-storage-blob jaraco-classes==3.2.3 # via keyring jeepney==0.8.0 @@ -229,7 +230,7 @@ kafka-python==2.0.2 # via testcontainers-kafka keyring==23.13.1 # via twine -markdown-it-py==2.1.0 +markdown-it-py==2.2.0 # via rich markupsafe==2.1.2 # via jinja2 @@ -239,24 +240,21 @@ mdurl==0.1.2 # via markdown-it-py minio==7.1.13 # via testcontainers-minio -more-itertools==9.0.0 +more-itertools==9.1.0 # via jaraco-classes -msrest==0.7.1 - # via azure-storage-blob -neo4j==5.5.0 +neo4j==5.6.0 # via testcontainers-neo4j -oauthlib==3.2.2 - # via requests-oauthlib -opensearch-py==2.1.1 +opensearch-py==2.2.0 # via testcontainers-opensearch outcome==1.2.0 # via trio packaging==23.0 # via + # deprecation # docker # pytest # sphinx -paramiko==3.0.0 +paramiko==3.1.0 # via docker pg8000==1.29.4 # via -r requirements.in @@ -307,7 +305,7 @@ pyrsistent==0.19.3 # via jsonschema pysocks==1.7.1 # via urllib3 -pytest==7.2.1 +pytest==7.2.2 # via # -r requirements.in # pytest-cov @@ -316,12 +314,14 @@ pytest-cov==4.0.0 python-arango==7.5.6 # via testcontainers-arangodb python-dateutil==2.8.2 - # via pg8000 + # via + # opensearch-py + # pg8000 python-dotenv==0.21.1 # via docker-compose python-jose==3.3.0 # via python-keycloak -python-keycloak==2.12.0 +python-keycloak==2.14.0 # via testcontainers-keycloak pytz==2022.7.1 # via @@ -334,7 +334,7 @@ pyyaml==5.4.1 # via docker-compose readme-renderer==37.3 # via twine -redis==4.5.1 +redis==4.5.2 # via testcontainers-redis requests==2.28.2 # via @@ -343,24 +343,20 @@ requests==2.28.2 # docker # docker-compose # google-api-core - # msrest # opensearch-py # python-arango # python-keycloak - # requests-oauthlib # requests-toolbelt # sphinx # twine -requests-oauthlib==1.3.1 - # via msrest -requests-toolbelt==0.9.1 +requests-toolbelt==0.10.1 # via # python-arango # python-keycloak # twine rfc3986==2.0.0 # via twine -rich==13.3.1 +rich==13.3.2 # via twine rsa==4.9 # via @@ -370,7 +366,7 @@ scramp==1.4.4 # via pg8000 secretstorage==3.3.3 # via keyring -selenium==4.8.0 +selenium==4.8.2 # via testcontainers-selenium six==1.16.0 # via @@ -381,6 +377,7 @@ six==1.16.0 # google-auth # isodate # jsonschema + # opensearch-py # python-dateutil # websocket-client sniffio==1.3.0 @@ -403,7 +400,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlalchemy==2.0.3 +sqlalchemy==2.0.7 # via # testcontainers-mssql # testcontainers-mysql @@ -419,7 +416,7 @@ trio==0.22.0 # via # selenium # trio-websocket -trio-websocket==0.9.2 +trio-websocket==0.10.2 # via selenium twine==4.0.2 # via -r requirements.in @@ -427,6 +424,7 @@ typing-extensions==4.5.0 # via # async-timeout # azure-core + # azure-storage-blob # h11 # importlib-metadata # markdown-it-py @@ -435,9 +433,9 @@ typing-extensions==4.5.0 # sqlalchemy tzdata==2022.7 # via pytz-deprecation-shim -tzlocal==4.2 +tzlocal==4.3 # via clickhouse-driver -urllib3[socks]==1.26.14 +urllib3[socks]==1.26.15 # via # docker # minio @@ -453,13 +451,13 @@ websocket-client==0.59.0 # via # docker # docker-compose -wheel==0.38.4 +wheel==0.40.0 # via -r requirements.in -wrapt==1.14.1 +wrapt==1.15.0 # via testcontainers-core wsproto==1.2.0 # via trio-websocket -zipp==3.13.0 +zipp==3.15.0 # via # importlib-metadata # importlib-resources diff --git a/requirements/3.8.txt b/requirements/3.8.txt index 79810f5ae..5b0697966 100644 --- a/requirements/3.8.txt +++ b/requirements/3.8.txt @@ -27,6 +27,7 @@ # testcontainers-kafka # testcontainers-keycloak # testcontainers-localstack + # testcontainers-memcached # testcontainers-minio # testcontainers-mongodb # testcontainers-mssql @@ -49,6 +50,8 @@ # via -r requirements.in -e file:localstack # via -r requirements.in +-e file:memcached + # via -r requirements.in -e file:minio # via -r requirements.in -e file:mongodb @@ -78,9 +81,7 @@ alabaster==0.7.13 asn1crypto==1.5.1 # via scramp async-generator==1.10 - # via - # trio - # trio-websocket + # via trio async-timeout==4.0.2 # via redis attrs==22.2.0 @@ -90,12 +91,10 @@ attrs==22.2.0 # pytest # trio azure-core==1.26.3 - # via - # azure-storage-blob - # msrest -azure-storage-blob==12.14.1 + # via azure-storage-blob +azure-storage-blob==12.15.0 # via testcontainers-azurite -babel==2.11.0 +babel==2.12.1 # via sphinx backports-zoneinfo==0.2.1 # via @@ -110,7 +109,6 @@ cachetools==5.3.0 certifi==2022.12.7 # via # minio - # msrest # opensearch-py # requests # selenium @@ -118,13 +116,13 @@ cffi==1.15.1 # via # cryptography # pynacl -charset-normalizer==3.0.1 +charset-normalizer==3.1.0 # via requests clickhouse-driver==0.2.5 # via testcontainers-clickhouse codecov==2.1.12 # via -r requirements.in -coverage[toml]==7.1.0 +coverage[toml]==7.2.2 # via # codecov # pytest-cov @@ -136,6 +134,8 @@ cryptography==36.0.2 # secretstorage cx-oracle==8.3.0 # via testcontainers-oracle +deprecation==2.1.0 + # via python-keycloak distro==1.8.0 # via docker-compose dnspython==2.3.0 @@ -158,19 +158,20 @@ ecdsa==0.18.0 # via python-jose entrypoints==0.3 # via flake8 -exceptiongroup==1.1.0 +exceptiongroup==1.1.1 # via # pytest # trio + # trio-websocket flake8==3.7.9 # via -r requirements.in google-api-core[grpc]==2.11.0 # via google-cloud-pubsub -google-auth==2.16.0 +google-auth==2.16.2 # via google-api-core google-cloud-pubsub==1.7.2 # via testcontainers-gcp -googleapis-common-protos[grpc]==1.58.0 +googleapis-common-protos[grpc]==1.59.0 # via # google-api-core # grpc-google-iam-v1 @@ -179,7 +180,7 @@ greenlet==2.0.2 # via sqlalchemy grpc-google-iam-v1==0.12.6 # via google-cloud-pubsub -grpcio==1.51.1 +grpcio==1.51.3 # via # google-api-core # googleapis-common-protos @@ -195,17 +196,17 @@ idna==3.4 # trio imagesize==1.4.1 # via sphinx -importlib-metadata==6.0.0 +importlib-metadata==6.1.0 # via # keyring # sphinx # twine -importlib-resources==5.10.2 +importlib-resources==5.12.0 # via keyring iniconfig==2.0.0 # via pytest isodate==0.6.1 - # via msrest + # via azure-storage-blob jaraco-classes==3.2.3 # via keyring jeepney==0.8.0 @@ -220,7 +221,7 @@ kafka-python==2.0.2 # via testcontainers-kafka keyring==23.13.1 # via twine -markdown-it-py==2.1.0 +markdown-it-py==2.2.0 # via rich markupsafe==2.1.2 # via jinja2 @@ -230,24 +231,21 @@ mdurl==0.1.2 # via markdown-it-py minio==7.1.13 # via testcontainers-minio -more-itertools==9.0.0 +more-itertools==9.1.0 # via jaraco-classes -msrest==0.7.1 - # via azure-storage-blob -neo4j==5.5.0 +neo4j==5.6.0 # via testcontainers-neo4j -oauthlib==3.2.2 - # via requests-oauthlib -opensearch-py==2.1.1 +opensearch-py==2.2.0 # via testcontainers-opensearch outcome==1.2.0 # via trio packaging==23.0 # via + # deprecation # docker # pytest # sphinx -paramiko==3.0.0 +paramiko==3.1.0 # via docker pg8000==1.29.4 # via -r requirements.in @@ -298,21 +296,23 @@ pyrsistent==0.19.3 # via jsonschema pysocks==1.7.1 # via urllib3 -pytest==7.2.1 +pytest==7.2.2 # via # -r requirements.in # pytest-cov pytest-cov==4.0.0 # via -r requirements.in -python-arango==7.5.6 +python-arango==7.5.7 # via testcontainers-arangodb python-dateutil==2.8.2 - # via pg8000 + # via + # opensearch-py + # pg8000 python-dotenv==0.21.1 # via docker-compose python-jose==3.3.0 # via python-keycloak -python-keycloak==2.12.0 +python-keycloak==2.14.0 # via testcontainers-keycloak pytz==2022.7.1 # via @@ -325,7 +325,7 @@ pyyaml==5.4.1 # via docker-compose readme-renderer==37.3 # via twine -redis==4.5.1 +redis==4.5.2 # via testcontainers-redis requests==2.28.2 # via @@ -334,24 +334,20 @@ requests==2.28.2 # docker # docker-compose # google-api-core - # msrest # opensearch-py # python-arango # python-keycloak - # requests-oauthlib # requests-toolbelt # sphinx # twine -requests-oauthlib==1.3.1 - # via msrest -requests-toolbelt==0.9.1 +requests-toolbelt==0.10.1 # via # python-arango # python-keycloak # twine rfc3986==2.0.0 # via twine -rich==13.3.1 +rich==13.3.2 # via twine rsa==4.9 # via @@ -361,7 +357,7 @@ scramp==1.4.4 # via pg8000 secretstorage==3.3.3 # via keyring -selenium==4.8.0 +selenium==4.8.2 # via testcontainers-selenium six==1.16.0 # via @@ -372,6 +368,7 @@ six==1.16.0 # google-auth # isodate # jsonschema + # opensearch-py # python-dateutil # websocket-client sniffio==1.3.0 @@ -394,7 +391,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlalchemy==2.0.3 +sqlalchemy==2.0.7 # via # testcontainers-mssql # testcontainers-mysql @@ -410,20 +407,21 @@ trio==0.22.0 # via # selenium # trio-websocket -trio-websocket==0.9.2 +trio-websocket==0.10.2 # via selenium twine==4.0.2 # via -r requirements.in typing-extensions==4.5.0 # via # azure-core + # azure-storage-blob # rich # sqlalchemy tzdata==2022.7 # via pytz-deprecation-shim -tzlocal==4.2 +tzlocal==4.3 # via clickhouse-driver -urllib3[socks]==1.26.14 +urllib3[socks]==1.26.15 # via # docker # minio @@ -439,13 +437,13 @@ websocket-client==0.59.0 # via # docker # docker-compose -wheel==0.38.4 +wheel==0.40.0 # via -r requirements.in -wrapt==1.14.1 +wrapt==1.15.0 # via testcontainers-core wsproto==1.2.0 # via trio-websocket -zipp==3.13.0 +zipp==3.15.0 # via # importlib-metadata # importlib-resources diff --git a/requirements/3.9.txt b/requirements/3.9.txt index 7da5249fb..c8b0bc5c8 100644 --- a/requirements/3.9.txt +++ b/requirements/3.9.txt @@ -27,6 +27,7 @@ # testcontainers-kafka # testcontainers-keycloak # testcontainers-localstack + # testcontainers-memcached # testcontainers-minio # testcontainers-mongodb # testcontainers-mssql @@ -49,6 +50,8 @@ # via -r requirements.in -e file:localstack # via -r requirements.in +-e file:memcached + # via -r requirements.in -e file:minio # via -r requirements.in -e file:mongodb @@ -78,9 +81,7 @@ alabaster==0.7.13 asn1crypto==1.5.1 # via scramp async-generator==1.10 - # via - # trio - # trio-websocket + # via trio async-timeout==4.0.2 # via redis attrs==22.2.0 @@ -90,12 +91,10 @@ attrs==22.2.0 # pytest # trio azure-core==1.26.3 - # via - # azure-storage-blob - # msrest -azure-storage-blob==12.14.1 + # via azure-storage-blob +azure-storage-blob==12.15.0 # via testcontainers-azurite -babel==2.11.0 +babel==2.12.1 # via sphinx bcrypt==4.0.1 # via paramiko @@ -106,7 +105,6 @@ cachetools==5.3.0 certifi==2022.12.7 # via # minio - # msrest # opensearch-py # requests # selenium @@ -114,13 +112,13 @@ cffi==1.15.1 # via # cryptography # pynacl -charset-normalizer==3.0.1 +charset-normalizer==3.1.0 # via requests clickhouse-driver==0.2.5 # via testcontainers-clickhouse codecov==2.1.12 # via -r requirements.in -coverage[toml]==7.1.0 +coverage[toml]==7.2.2 # via # codecov # pytest-cov @@ -132,6 +130,8 @@ cryptography==36.0.2 # secretstorage cx-oracle==8.3.0 # via testcontainers-oracle +deprecation==2.1.0 + # via python-keycloak distro==1.8.0 # via docker-compose dnspython==2.3.0 @@ -154,19 +154,20 @@ ecdsa==0.18.0 # via python-jose entrypoints==0.3 # via flake8 -exceptiongroup==1.1.0 +exceptiongroup==1.1.1 # via # pytest # trio + # trio-websocket flake8==3.7.9 # via -r requirements.in google-api-core[grpc]==2.11.0 # via google-cloud-pubsub -google-auth==2.16.0 +google-auth==2.16.2 # via google-api-core google-cloud-pubsub==1.7.2 # via testcontainers-gcp -googleapis-common-protos[grpc]==1.58.0 +googleapis-common-protos[grpc]==1.59.0 # via # google-api-core # grpc-google-iam-v1 @@ -175,7 +176,7 @@ greenlet==2.0.2 # via sqlalchemy grpc-google-iam-v1==0.12.6 # via google-cloud-pubsub -grpcio==1.51.1 +grpcio==1.51.3 # via # google-api-core # googleapis-common-protos @@ -191,7 +192,7 @@ idna==3.4 # trio imagesize==1.4.1 # via sphinx -importlib-metadata==6.0.0 +importlib-metadata==6.1.0 # via # keyring # sphinx @@ -199,7 +200,7 @@ importlib-metadata==6.0.0 iniconfig==2.0.0 # via pytest isodate==0.6.1 - # via msrest + # via azure-storage-blob jaraco-classes==3.2.3 # via keyring jeepney==0.8.0 @@ -214,7 +215,7 @@ kafka-python==2.0.2 # via testcontainers-kafka keyring==23.13.1 # via twine -markdown-it-py==2.1.0 +markdown-it-py==2.2.0 # via rich markupsafe==2.1.2 # via jinja2 @@ -224,24 +225,21 @@ mdurl==0.1.2 # via markdown-it-py minio==7.1.13 # via testcontainers-minio -more-itertools==9.0.0 +more-itertools==9.1.0 # via jaraco-classes -msrest==0.7.1 - # via azure-storage-blob -neo4j==5.5.0 +neo4j==5.6.0 # via testcontainers-neo4j -oauthlib==3.2.2 - # via requests-oauthlib -opensearch-py==2.1.1 +opensearch-py==2.2.0 # via testcontainers-opensearch outcome==1.2.0 # via trio packaging==23.0 # via + # deprecation # docker # pytest # sphinx -paramiko==3.0.0 +paramiko==3.1.0 # via docker pg8000==1.29.4 # via -r requirements.in @@ -292,25 +290,26 @@ pyrsistent==0.19.3 # via jsonschema pysocks==1.7.1 # via urllib3 -pytest==7.2.1 +pytest==7.2.2 # via # -r requirements.in # pytest-cov pytest-cov==4.0.0 # via -r requirements.in -python-arango==7.5.6 +python-arango==7.5.7 # via testcontainers-arangodb python-dateutil==2.8.2 - # via pg8000 + # via + # opensearch-py + # pg8000 python-dotenv==0.21.1 # via docker-compose python-jose==3.3.0 # via python-keycloak -python-keycloak==2.12.0 +python-keycloak==2.14.0 # via testcontainers-keycloak pytz==2022.7.1 # via - # babel # clickhouse-driver # neo4j pytz-deprecation-shim==0.1.0.post0 @@ -319,7 +318,7 @@ pyyaml==5.4.1 # via docker-compose readme-renderer==37.3 # via twine -redis==4.5.1 +redis==4.5.2 # via testcontainers-redis requests==2.28.2 # via @@ -328,24 +327,20 @@ requests==2.28.2 # docker # docker-compose # google-api-core - # msrest # opensearch-py # python-arango # python-keycloak - # requests-oauthlib # requests-toolbelt # sphinx # twine -requests-oauthlib==1.3.1 - # via msrest -requests-toolbelt==0.9.1 +requests-toolbelt==0.10.1 # via # python-arango # python-keycloak # twine rfc3986==2.0.0 # via twine -rich==13.3.1 +rich==13.3.2 # via twine rsa==4.9 # via @@ -355,7 +350,7 @@ scramp==1.4.4 # via pg8000 secretstorage==3.3.3 # via keyring -selenium==4.8.0 +selenium==4.8.2 # via testcontainers-selenium six==1.16.0 # via @@ -366,6 +361,7 @@ six==1.16.0 # google-auth # isodate # jsonschema + # opensearch-py # python-dateutil # websocket-client sniffio==1.3.0 @@ -388,7 +384,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -sqlalchemy==2.0.3 +sqlalchemy==2.0.7 # via # testcontainers-mssql # testcontainers-mysql @@ -404,19 +400,20 @@ trio==0.22.0 # via # selenium # trio-websocket -trio-websocket==0.9.2 +trio-websocket==0.10.2 # via selenium twine==4.0.2 # via -r requirements.in typing-extensions==4.5.0 # via # azure-core + # azure-storage-blob # sqlalchemy tzdata==2022.7 # via pytz-deprecation-shim -tzlocal==4.2 +tzlocal==4.3 # via clickhouse-driver -urllib3[socks]==1.26.14 +urllib3[socks]==1.26.15 # via # docker # minio @@ -432,13 +429,13 @@ websocket-client==0.59.0 # via # docker # docker-compose -wheel==0.38.4 +wheel==0.40.0 # via -r requirements.in -wrapt==1.14.1 +wrapt==1.15.0 # via testcontainers-core wsproto==1.2.0 # via trio-websocket -zipp==3.13.0 +zipp==3.15.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: