Skip to content

Commit 06ff322

Browse files
author
maxi297
committed
add test
1 parent 92c1914 commit 06ff322

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

unit_tests/sources/declarative/decoders/test_composite_decoder.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import csv
55
import gzip
66
import json
7+
from http.server import BaseHTTPRequestHandler, HTTPServer
78
from io import BytesIO, StringIO
9+
from threading import Thread
810
from unittest.mock import patch
911

1012
import pytest
@@ -202,6 +204,28 @@ def test_composite_raw_decoder_csv_parser_values(requests_mock, encoding: str, d
202204
assert parsed_records == expected_data
203205

204206

207+
class TestServer(BaseHTTPRequestHandler):
208+
209+
def do_GET(self) -> None:
210+
self.send_response(200)
211+
self.end_headers()
212+
self.wfile.write(bytes("col1,col2\nval1,val2", 'utf-8'))
213+
214+
215+
def test_composite_raw_decoder_csv_parser():
216+
# start server
217+
httpd = HTTPServer(('localhost', 8080), TestServer)
218+
thread = Thread(target=httpd.serve_forever, args = ())
219+
thread.start()
220+
221+
response = requests.get("http://localhost:8080", stream=True)
222+
result = list(CompositeRawDecoder(parser=CsvParser()).decode(response))
223+
224+
assert len(result) == 1
225+
httpd.shutdown() # release port
226+
thread.join()
227+
228+
205229
def test_given_response_already_consumed_when_decode_then_no_data_is_returned(requests_mock):
206230
requests_mock.register_uri(
207231
"GET", "https://airbyte.io/", content=json.dumps({"test": "test"}).encode()

0 commit comments

Comments
 (0)