aioamqp icon indicating copy to clipboard operation
aioamqp copied to clipboard

Publishing to a non-existing exchange does not raise errors

Open greatvovan opened this issue 5 years ago • 1 comments

When publishing to a non-existing exchange the module does not raise any exceptions, but any subsequent operation on the channel will raise exceptions.

This code completes without problems, but will throw if uncommented:

import asyncio
import aioamqp

async def main():
    tr, pr = await aioamqp.from_url('amqp://log:pass@host')
    chan = await pr.channel()
    await chan.publish(b'ABC', 'no-such-exchange', '')
    # await chan.publish(b'ABC', 'no-such-exchange', '')
    # await chan.close()
    tr.close()
    await asyncio.sleep(1.0)

asyncio.run(main())

Expected: an exception is raised at the moment of problem operation.

aioamqp==0.14.0 Python 3.8.0

greatvovan avatar Jul 20 '20 21:07 greatvovan

Hi @greatvovan

it's because of AMQP design : the publish does not raises any error, but any operations fails thereafter

https://stackoverflow.com/questions/56550352/python-pika-publishing-to-non-existing-exchange-does-not-raise-exception

dzen avatar Aug 10 '20 07:08 dzen