Replies (8)

  • @kb, вот убей не пойму как с ним завернуть httplib, чтобы без сервера гонять по тестам правильно составленные HTTPResponse ответы /:
  • @Kxepal, ну как как. Show me the code, как говорится)
  • @kb, я даже не понимаю, как этот код записать(: по факту мне требуется сделать моск сокета, в котором уже есть какие-то данные, но как мне его завернуть так? я сам молодой для этой техники и дальше манки-патчинга не ушел(:
  • @Kxepal, эээ, ну еще раз. У тебя в тесте есть вызов функции my_module.get_some_data_from_socket(with_these_params). Ты делаешь над тестом @patch('my_module.get_some_data_from_socket'), сам тест принимает параметром get_some_data_from_socket и в начале теста пишешь get_some_data_from_socket.return_value = u'здесь значение, которое функция вернуть должна'.

    Или я не понял проблемы?
  • @kb, ок, давай на примере(: есть такой метод:
    paste.pocoo.org
    conn есть httplib.HTTPConnection инстанс
    соответственно, для всех прочих методов, которые обрабатывают результат запроса, мне необходимо подсунуть HTTPReponse инстанс собственного изготовления, а ему на инициализацию подать готовый для чтения сокет с данными(StringIO не прокатывает и он потом уходит гулять дальше по mimetools и rfc822). Вот и вопрос(:
  • @Kxepal, мм, так, еще раз уточню. Тебе надо протестировать этот make_request, подсунув ему свой conn, так?
  • @kb, нет, мне нужно протестировать результат этого метода. блин, я адски тупанул сейчас — я плясал от того, чтобы создать именно нужный HTTPResponse инстансе, а нужно просто возвращать любой объект с реализацией нужного функционала (%
    собственно, так наверно и нужно поступить.
    Вот сам класс: paste.pocoo.org
  • @Kxepal, да, у меня тоже этот разрыв в мозге пока не произошел — думал, что мок это сложно)