Почему вывод ICU будет отличаться на двух машинах?
Я работаю над интерфейсом для библиотеки i18n ICU (и PyICU) для Flask. В моем наборе тестов у меня есть тест, который проверяет выходные данные для различных настроек локали. У меня проблема в том, что локально мои тесты проходят успешно, тогда как в экземпляре TravisCI, где они также выполняются, они не проходят.
Причина? Вывод от ICU очевидно различен на двух машинах. В одном тесте я проверяю результат выполнения dateformat на Python dateformat
используя итальянский язык: it_IT
, Результат локально: 12 апреля 2010, 15:46:00. Но в случае с TravisCI это изменилось таким образом, что для меня это не имеет смысла. Посмотреть здесь:
Как видите, сгенерированная строка похожа, но имеет добавленные /
s. Я не уверен, почему это может происходить. Идеи кого-нибудь?
ОБНОВЛЕНИЕ 28.10.2016
После нескольких испытаний, чтобы попытаться воспроизвести вывод другого формата даты, который происходит в экземпляре travis, я не смог воспроизвести эту проблему. Я попробовал следующее:
Явно устанавливая локали на экземпляре travis, добавив следующее к
before_install
сценарий:sudo locale-gen "en_US.UTF-8"
sudo update-locale
sudo dpkg-переконфигурировать локалиЯ запустил экземпляр ec2, на котором предположительно основана машина Travis Trusty Tahr ( см. Здесь), и попытался установить все необходимое и запустить свои тесты. Нет ошибок!
Я попытался установить мои машинные локали на те, которые установлены на экземпляре travis. Опять нет ошибок!,
Я попробовал другой языковой стандарт, просто чтобы посмотреть, возможно ли это как-то связано с этим конкретным языковым стандартом, но получил другое отклонение:
Так что в этот момент кажется вероятным, что что-то, кроме настроек локали, вызывает неправильный вывод.