Как смоделировать хранилище метод hvac.Client () - PullRequest
0 голосов
/ 23 января 2019

Здесь я использую unittest Framework и Python.

def getsomevalue(name):
    client = hvac.Client(url ="http://1.2.3.4:31485",token = "abcdefghijkkk")                               
    sampledata= client.read('secret/data/somedata')
    return sampledata

1 Ответ

0 голосов
/ 22 июля 2019

Итак, в основном я создал фиктивный клиентский класс hvac, а затем исправил замену экземпляра клиента хранилища в вашем коде.

другими словами, это что-то вроде этого:

def mock_vault_read(*args, **kwargs):
   class MockVault:
       def read(self, **kwargs):
          return {some_data}

и затем для теста вы можете написать:

@patch("hvac.Client", side_effect=mock_vault_read):
def test_read(self, mock_vault):
   name = "test"
   result = getsomevalue(name)
   self.assertEquals(result, {some_data})

Что он делает, это создает магический макет mock_vault и заменяет все экземпляры hvac.Client, которые он может найти с помощью этого магического макета. Mock_vault_read является побочным эффектом этого магического макета, по сути говоря, когда вы вызываете магический макет, вызывайте функцию mock_vault_read. Это может быть дополнительно настроено для любой функции, необходимой для hvac.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...