Издевание по глобальной переменнойPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Издевание по глобальной переменной

Сообщение Anonymous »

Я пытался реализовать некоторые модульные тесты для модуля. Пример модуля с именем alphabet.py выглядит следующим образом:
import database

def length_letters():
return len(letters)

def contains_letter(letter):
return letter in letters

letters = database.get('letters') # returns a list of letters
< /code>
Я бы хотел высмеивать ответ из базы данных с некоторыми значениями по моему выбору, но код ниже, кажется, не работает. < /p>
import unittests
import alphabet
from unittest.mock import patch

class TestAlphabet(unittest.TestCase):
@patch('alphabet.letters')
def setUp(self, mock_letters):
mock_letters.return_value = ['a', 'b', 'c']

def test_length_letters(self):
self.assertEqual(3, alphabet.length_letters())

def test_contains_letter(self):
self.assertTrue(alphabet.contains_letter('a'))
< /code>
Я видел много примеров, в которых «патч» применяется к методам и классам, но не к переменным. Я предпочитаю не исправлять метод database.get , потому что я могу снова использовать его с различными параметрами позже, поэтому мне понадобится другой ответ.
Что я здесь делаю?

Подробнее здесь: https://stackoverflow.com/questions/383 ... l-variable
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»