chore: allow custom routing header metadata
Avoid setting the routing metadata field (x-goog-request-params) if it already exists in the passed in metadata, to prevent duplicate routing headers
Fixes https://github.com/googleapis/gapic-generator-python/issues/2078
@parthea I'm a little unsure about the failing showcase tests. Looking at the method names, it seems to line up with the methods in _test_mixins. But I don't fully understand that file.
Do I need to duplicate my new tests for each method in _test_mixins by hand? Why is that needed on top of the templates I already added to test_macros?
Unrelated to this change, a customer reported a separate issue with routing for the async client. We may want to address this at the same time? https://github.com/googleapis/gapic-generator-python/issues/2091
Blocked on https://github.com/googleapis/gapic-generator-python/pull/2133. I will update this after those changes are merged
From https://github.com/googleapis/gapic-generator-python/pull/2133#discussion_r1765185149:
For https://github.com/googleapis/gapic-generator-python/issues/2078 we need to update AIPs first so there is consistent behavior across all language-specific generators: https://google.aip.dev/client-libraries/4222
Closing this because it is out of date after https://github.com/googleapis/gapic-generator-python/pull/2133 (and may no longer be needed)