Запустите Mock, используя менеджер контекста, и получите аргумент open

Нет, вы не можете получить доступ к метаданным (GCE-специфическим) из стандартного экземпляра GAE, поскольку он не является экземпляром GCE VM /. Из Получение метаданных (выделено мной):

Вы можете запросить содержимое сервера метаданных, сделав запрос на следующие корневые URL-адреса из экземпляра виртуальной машины. Используйте URL http://metadata.google.internal/computeMetadata/v1/ для выполнения запросов на сервер метаданных.

blockquote>

Ошибка DNS, которую вы видите для metadata.google.internal, является вероятным индикатором того, что это специальная запись DNS хоста, доступная только внутри GCE сети или компьютера.

Но в общем случае можно обмениваться файлами через службы / модули GAE, символизируя один и тот же файл (идеально расположенный в каталоге приложения) внутри каждого из них, требуя его. См. Примеры здесь: Совместное использование сущностей между модулями App Engine и здесь: https://stackoverflow.com/a/34111170/4495081

Пока модуль / модуль flex использует один и тот же файл (ы) файла (ов) таким же образом, как и стандартный, этот метод должен работать и для них, то есть вы можете делиться конфигурациями, например, используя файл appengine_config.py.

0
задан Juanpe Araque 27 March 2019 в 11:21
поделиться

1 ответ

Я понял!

Мне пришлось динамически определять побочный эффект, но, похоже, он работает нормально. Вот что я сделал:

def setUp(self):
    # Setup the content of the config files for the tests
    json.load = MagicMock(side_effect=file_content)

    # Opening a file returns the name of the file
    def get_mock_context(filename):
        mock_context = MagicMock()
        mock_context.__enter__.return_value = filename
        mock_context.__exit__.return_value = False
        return mock_context
    builtins.open = MagicMock(side_effect=get_mock_context)

Таким образом, возвращаемое значение представляет собой макет, в котором есть методы __enter__ и __exit__, возвращающие именно то имя файла, которое я передал вызову open. [115 ]

0
ответ дан Juanpe Araque 27 March 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: