The find function of gettext module is what you need. More exactly, it is internally used by the install function, so it will return what install will use:
gettext.install(domain, localedir=None, codeset=None, names=None)
This installs the function _() in Python’s builtins namespace, based on domain, localedir, and codeset which are passed to the function translation()...
then
gettext.translation(domain, localedir=None, languages=None, class_=None, fallback=False, codeset=None)
Return a Translations instance based on the domain, localedir, and languages, which are first passed to find() to get a list of the associated .mo file paths...
So you should use:
file = gettext.find('i18n-test', 'locales')
It should return a file name like localedir/language/LC_MESSAGES/domain.mo, where language is the language selected by gettext.