fix(gateway): make WriteEngine + converter raise-safe against malformed write commands
This commit is contained in:
@@ -161,6 +161,46 @@ async def test_write_bad_type_returns_error_without_raising():
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_write_none_data_type_returns_error_without_raising():
|
||||
eng = make_engine()
|
||||
|
||||
result = await eng.write(base_cmd(data_type=None))
|
||||
|
||||
assert result.ok is False
|
||||
assert result.status == 'error'
|
||||
eng.sink.update_write_status.assert_awaited_once()
|
||||
eng.pool.get.assert_not_awaited()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_write_missing_value_key_returns_error_without_raising():
|
||||
eng = make_engine()
|
||||
cmd = base_cmd()
|
||||
del cmd['value']
|
||||
|
||||
result = await eng.write(cmd)
|
||||
|
||||
assert result.ok is False
|
||||
assert result.status == 'error'
|
||||
eng.sink.update_write_status.assert_awaited_once()
|
||||
eng.pool.get.assert_not_awaited()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_write_missing_data_type_key_returns_error_without_raising():
|
||||
eng = make_engine()
|
||||
cmd = base_cmd()
|
||||
del cmd['data_type']
|
||||
|
||||
result = await eng.write(cmd)
|
||||
|
||||
assert result.ok is False
|
||||
assert result.status == 'error'
|
||||
eng.sink.update_write_status.assert_awaited_once()
|
||||
eng.pool.get.assert_not_awaited()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_write_value_raises_maps_to_error_result_not_raised():
|
||||
eng = make_engine()
|
||||
|
||||
Reference in New Issue
Block a user