Почему вывод ICU будет отличаться на двух машинах?

Я работаю над интерфейсом для библиотеки i18n ICU (и PyICU) для Flask. В моем наборе тестов у меня есть тест, который проверяет выходные данные для различных настроек локали. У меня проблема в том, что локально мои тесты проходят успешно, тогда как в экземпляре TravisCI, где они также выполняются, они не проходят.

Причина? Вывод от ICU очевидно различен на двух машинах. В одном тесте я проверяю результат выполнения dateformat на Python dateformat используя итальянский язык: it_IT, Результат локально: 12 апреля 2010, 15:46:00. Но в случае с TravisCI это изменилось таким образом, что для меня это не имеет смысла. Посмотреть здесь:

Как видите, сгенерированная строка похожа, но имеет добавленные /s. Я не уверен, почему это может происходить. Идеи кого-нибудь?

ОБНОВЛЕНИЕ 28.10.2016

После нескольких испытаний, чтобы попытаться воспроизвести вывод другого формата даты, который происходит в экземпляре travis, я не смог воспроизвести эту проблему. Я попробовал следующее:

  1. Явно устанавливая локали на экземпляре travis, добавив следующее к before_install сценарий:

    sudo locale-gen "en_US.UTF-8"
    sudo update-locale
    sudo dpkg-переконфигурировать локали

  2. Я запустил экземпляр ec2, на котором предположительно основана машина Travis Trusty Tahr ( см. Здесь), и попытался установить все необходимое и запустить свои тесты. Нет ошибок!

  3. Я попытался установить мои машинные локали на те, которые установлены на экземпляре travis. Опять нет ошибок!,

  4. Я попробовал другой языковой стандарт, просто чтобы посмотреть, возможно ли это как-то связано с этим конкретным языковым стандартом, но получил другое отклонение:

Так что в этот момент кажется вероятным, что что-то, кроме настроек локали, вызывает неправильный вывод.

0 ответов

Другие вопросы по тегам