The ubiquitous
bitcoin PyPI package can work with OP_RETURN using its usual transaction signing and broadcasting methods since it can process raw transactions. If you make the raw transaction with your OP_RETURN data you can then manipulate it using this package.
Testnet support is provided by importing the module and creating a class instance using
Bitcoin(testnet=True). I must warn you though, this package is somewhat old, even its immediate successor fork hasn't been updated since 2018, but it looks like this is the most recent decent package you'll find.