default backend sort order is not deterministic
the default backend is chosen using the following code:
# if the user doesn't specify a keyring, we apply a default one if keyring is None: keyrings = backend.get_all_keyring() # rank according to the supported result keyrings.sort(key = lambda x: -x.supported()) # get the most recommended one keyring = keyrings
this isn't deterministic enough because subsequent runs may return a different value if <backend>.supported() is the same value for multiple backends.
for example, on ubuntu, if i run the following a bunch of times:
import keyring print keyring.get_keyring()
sometimes i'll get keyring.backends.Gnome.Keyring and sometimes i'll get keyring.backends.file.PlaintextKeyring.