I am trying to test the emulator in order to include it in our Integration Testing facilities. One of the scenarios we have in our codebase is the streaming of data via Storage Python API BigQueryWriteClient. The setup of the process requires to create a write stream via the following code:
I was expecting to have the write stream created for appending rows via Protocol Buffers.
How can we reproduce it (as minimally and precisely as possible)?
I have created a small Docker Compose file set in order to replicate it easily. Just copy the contents to the same filenames, put all files to a single directory and launch with:
docker compose up
Dockerfile
FROM python:3.9-bullseye
RUN mkdir /app
WORKDIR /app
RUN pip install --no-cache-dir db-dtypes
RUN pip install --no-cache-dir google-cloud-bigquery
RUN pip install --no-cache-dir google-cloud-bigquery-storage
RUN pip install --no-cache-dir pandas
RUN pip install --no-cache-dir protobuf==3.20.2
COPY emulator_test.py /app/emulator_test.py
CMD python3 -m emulator_test
What happened?
I am trying to test the emulator in order to include it in our Integration Testing facilities. One of the scenarios we have in our codebase is the streaming of data via Storage Python API
BigQueryWriteClient
. The setup of the process requires to create a write stream via the following code:The
create_write_stream
invocation throws an SSL exception:What did you expect to happen?
I was expecting to have the write stream created for appending rows via Protocol Buffers.
How can we reproduce it (as minimally and precisely as possible)?
I have created a small Docker Compose file set in order to replicate it easily. Just copy the contents to the same filenames, put all files to a single directory and launch with:
Dockerfile
compose.yaml
emulator_test.py
Anything else we need to know?
I am using the following environment:
OS:
Debian 11
Python:3.9.2
Docker:20.10.5+dfsg1, build 55c4c88
Compose:v2.23.0