Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mxyng committed Jan 22, 2024
1 parent 22f15c2 commit 5c0025c
Showing 1 changed file with 46 additions and 8 deletions.
54 changes: 46 additions & 8 deletions tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -267,11 +267,14 @@ def generate():
'insecure': False,
'stream': True,
},
).respond_with_json({})
).respond_with_handler(stream_handler)

client = Client(httpserver.url_for('/'))
response = client.pull('dummy', stream=True)
assert isinstance(response, types.GeneratorType)

it = iter(['pulling manifest', 'verifying sha256 digest', 'writing manifest', 'removing any unused layers', 'success'])
for part in response:
assert part['status'] == next(it)


def test_client_push(httpserver: HTTPServer):
Expand All @@ -291,6 +294,14 @@ def test_client_push(httpserver: HTTPServer):


def test_client_push_stream(httpserver: HTTPServer):
def stream_handler(_: Request):
def generate():
yield json.dumps({'status': 'retrieving manifest'}) + '\n'
yield json.dumps({'status': 'pushing manifest'}) + '\n'
yield json.dumps({'status': 'success'}) + '\n'

return Response(generate())

httpserver.expect_ordered_request(
'/api/push',
method='POST',
Expand All @@ -299,11 +310,14 @@ def test_client_push_stream(httpserver: HTTPServer):
'insecure': False,
'stream': True,
},
).respond_with_json({})
).respond_with_handler(stream_handler)

client = Client(httpserver.url_for('/'))
response = client.push('dummy', stream=True)
assert isinstance(response, types.GeneratorType)

it = iter(['retrieving manifest', 'pushing manifest', 'success'])
for part in response:
assert part['status'] == next(it)


def test_client_create_path(httpserver: HTTPServer):
Expand Down Expand Up @@ -642,6 +656,16 @@ async def test_async_client_pull(httpserver: HTTPServer):

@pytest.mark.asyncio
async def test_async_client_pull_stream(httpserver: HTTPServer):
def stream_handler(_: Request):
def generate():
yield json.dumps({'status': 'pulling manifest'}) + '\n'
yield json.dumps({'status': 'verifying sha256 digest'}) + '\n'
yield json.dumps({'status': 'writing manifest'}) + '\n'
yield json.dumps({'status': 'removing any unused layers'}) + '\n'
yield json.dumps({'status': 'success'}) + '\n'

return Response(generate())

httpserver.expect_ordered_request(
'/api/pull',
method='POST',
Expand All @@ -650,11 +674,14 @@ async def test_async_client_pull_stream(httpserver: HTTPServer):
'insecure': False,
'stream': True,
},
).respond_with_json({})
).respond_with_handler(stream_handler)

client = AsyncClient(httpserver.url_for('/'))
response = await client.pull('dummy', stream=True)
assert isinstance(response, types.AsyncGeneratorType)

it = iter(['pulling manifest', 'verifying sha256 digest', 'writing manifest', 'removing any unused layers', 'success'])
async for part in response:
assert part['status'] == next(it)


@pytest.mark.asyncio
Expand All @@ -676,6 +703,14 @@ async def test_async_client_push(httpserver: HTTPServer):

@pytest.mark.asyncio
async def test_async_client_push_stream(httpserver: HTTPServer):
def stream_handler(_: Request):
def generate():
yield json.dumps({'status': 'retrieving manifest'}) + '\n'
yield json.dumps({'status': 'pushing manifest'}) + '\n'
yield json.dumps({'status': 'success'}) + '\n'

return Response(generate())

httpserver.expect_ordered_request(
'/api/push',
method='POST',
Expand All @@ -684,11 +719,14 @@ async def test_async_client_push_stream(httpserver: HTTPServer):
'insecure': False,
'stream': True,
},
).respond_with_json({})
).respond_with_handler(stream_handler)

client = AsyncClient(httpserver.url_for('/'))
response = await client.push('dummy', stream=True)
assert isinstance(response, types.AsyncGeneratorType)

it = iter(['retrieving manifest', 'pushing manifest', 'success'])
async for part in response:
assert part['status'] == next(it)


@pytest.mark.asyncio
Expand Down

0 comments on commit 5c0025c

Please sign in to comment.