testcontainers / testcontainers/testcontainers-python
New Container: Couchbase
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.3k
- Forks
- 386
- Avg merge
- 4h 40m
- Merged PRs (30d)
- 1
Description
What is the new container you'd like to have?
I would like to contribute a Couchbase container. More documentation here.
Couchbase Server is a powerful NoSQL database designed for high performance and scalability. It provides fast, low-latency data access with built-in replication and high availability. It also supports SQL-like queries through N1QL, making it easy to work with for developers familiar with relational databases.
I am proposing a dedicated Couchbase TestContainer for integration/system testing when using Couchbase as a NoSQL database.
Why not just use a generic container for this?
A dedicated custom Couchbase container is beneficial because it provides an abstraction layer when using it together with couchbase-python-client library. The container also allows for the simple and easy setup and interactions with the Couchbase database server via the couchbase-python-client.
Additionally, the container requires some initialization steps before it is ready to serve requests, such as setting up authentication credentials and creating a default bucket, scope, and collection. There are also several ports that need to be configured. Having these steps handled automatically in a dedicated Couchbase TestContainer class simplifies the process and ensures that the test container is ready to use quickly, with most of the necessary setup pre-configured. This results in a smoother integration and testing experience.
Other references:
The Java version of Testcontainers already supports Couchbase and is widely used within the community. Given its popularity, it would be beneficial to have similar functionality available for Python as well. Below are references to the Couchbase Testcontainers in Java:
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the Java Couchbase Testcontainers references and Couchbase's Docker getting-started documentation. Define the Python container's initialization, credentials, bucket/scope/collection setup, ports, and couchbase-python-client interactions. Done means a dedicated Testcontainers class is ready for integration and system tests with these setup steps handled automatically.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python
- Domain
- database, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100