June 24th, 2013

nyaload

Переопредели переопределение

Там, где в Java люди ради mock-тестирования пишут свой "интерфейс получения случайных чисел", свой "интерфейс файловой системы", "свой интерфейс получения времени" и "интерфейс вызова Sleep()" — программисты на питон просто заменяют в стандартном модуле стандартные функции файловой системы, случайных чисел или даты. В крайнем случае можно даже модуль целиком заменить ( sys.modules["time"] = my_object ), или переопределить функцию импорта модулей.

Сегодня порадовался такому диалогу:

Q: чуваки, я для тестирования переопределил стандартные дату и время, но в стороннем модуле стоит проверка isinstance(obj, datetime)! Что делать?

A: Не тормози, просто переопредели isinstance ( __builtin__.isinstance ) на свою функцию
nyaload

lj gist

Оказывается, ЖЖ научился вставлять в посты код из github, просто по ссылке

При этом:
1) ссылка может раскрыться в сотню строк
2) если её поставить под lj-cut - то при при клике lj-cut показ кода не работает.
3) внутренности тега a - исчезают.

Тест:
Просто ссылка:
https://gist.github.com/dobrokot/5851948

Ссылка из a-тега
ссылка под a-href

Под lj-cut:
Collapse )


Это клевая фича, но похоже программист который её делал - "просто выполнил таск в трекере".