The Redis test setup was wiping out backend configuration on first pass. This took 2 hours to pinpoint how(!). backend config arguments kept getting wiped out, resulting in unpredictable test results.
The problem is that the redis backend uses
arguments.pop to set up the configuration, while the test suite uses a class attribute to store the configuration. The first run test on the redis backend will clear out the config options for every subsequent test -- forcing them to run on the defaults.
A proper fix is to replace
get in the backend.
The only other backend to use
pop is memory, which uses it for managing a cache_dict. I'm not sure if that should be converted to
get as well.