chore: make precommit token check emulator-proof by olavloite · Pull Request #1402 · googleapis/python-spanner
The Emulator returns an empty pre-commit token when a commit is attempted without a pre-commit token. This is different from not returning any pre-commit token at all. The check for 'did the Commit return a pre-commit token?' did not take this into account, which caused commits on the Emulator that needed to be retried, not to be retried. This again caused multiple test errors when running on the Emulator, as this would keep a transaction present on the test database on the Emulator, and the Emulator only supports one transaction at a time. These test failures went unnoticed, because the test configuration for the Emulator had pinned the Emulator version to 1.5.37, which did not support multiplexed sessions. This again caused the tests to fall back to using regular sessions. This change fixes the check for whether a pre-commit token was returned by a Commit. It also unpins the Emulator version for the system tests using default settings. This ensures that the tests actually use multiplexed sessions.