Posted by & filed under Linux.

Для того, чтобы пройти проверку

request.is_ajax()==True

, нужно выполнить такой запрос:

curl -v http://myserver.com/url/to/app/ --header "X-Requested-With: XMLHttpRequest"

Posted by & filed under Linux.

Иногда очень нужно на сервере послать себе файл.
С wpost это делается очень просто:

wpost /home/dmitry/my_file.txt

отправляет файл на сервер, а в ответ возвращается такая ссылка:

http://wpost.miramik.com/link/ja7887213hjkasdjh78

Переходим по ней и загружаем наш файл.

UPD: Нашел аналог от github. Если отправить нужно только текстовый файл, то можно воспользоваться консольным клиентом gist.
Команда отправки файла выглядит так:

gist --private ~/my_file.txt

Результат:

https://gist.github.com/6878f4e82f48bacd315a

Posted by & filed under python.

Создать возможносность создавать ссылки на любой файл на компьютере.

Что-то типо человек А одним кликом создает ссылку на файл (получает что-то типо http://myserver.com/<hash_for_this_computer>/filename.txt) и передает человеку B.
Человек B переходит по ссылке и скачивает файл

Нашел аналог ( что примечательно работает из под Linux в консоли)
http://habrahabr.ru/company/yandex/blog/191446/
—————————————————————
UPD. Оказывается можно сделать через python:

python -m SimpleHTTPServer 8080

расшарит по моему IP текущий каталог из которого запущена команда

Posted by & filed under django.

Установка:

pip install django-nose
pip install coverage

Добавляем ‘django_nose’ в INSTALLED_APPS:

INSTALLED_APPS = (
...
'django_nose', 
...
)

Устанавливаем TEST_RUNNER:

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

Использование:

python manage.py test --with-coverage --cover-tests --cover-html --cover-package=my_app my_app

В результате будет создана папка cover в папке проекта, заходим в неё и открываем файл index.html.
Теперь мы можем видеть, что покрыто тестами, а что нет

Posted by & filed under python.

Ускорения тестов django:

  1. используем sqlite (django.db.backends.sqlite3)
  2. используем tmpfs
sudo mount -t tmpfs -o size=200m tmpfs /home/dmitry/tmpfs

В итоге в settings настройки БД выглядят так:

    'default': {
        'ENGINE': 'django.db.backends.sqlite3',        
        'TEST_NAME': '/home/dmitry/tmpfs/test_db',        
    },

Эффективность:
создание тестовой БД из 30 сек стало занимать 1 сек

UPD:
Нашелся даже еще проще вариант разместить БД в памяти. Не нужно работать с tmpfs, достаточно указать в файле настроек ‘:memory:’

    'default': {
        'ENGINE': 'django.db.backends.sqlite3',        
        'TEST_NAME': ':memory:',        
    },

Posted by & filed under python.

Проблема:
mysqldump: unknown variable pager

Решение:
Нужно поместить pager в секцию mysql

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
pager = less -n -i -S
prompt =(\u@\h) [\d]>

Posted by & filed under Linux.

At — простейшая программа выполнения заданий в определенное время.

Пример:

echo 'notify-send "Hello world" ' | at 18:53

Покажет уведомление «Hello world» в 18:53

Posted by & filed under python.

Вот такие мысли появились.
Сталкнулся с такой проблемой — написание тестов занимает большую часть времени, но не у всех тестов одинаковый приоритет. Есть тесты, которые обрабатываю такие ситуации, вероятность происхождения которых очень низка.
Поэтому возникли мысли, а может стоит ввести понятия родов в тестах:

  • тесты 1 рода, проверяют работоспособность системы когда данные введены все правильно, пользователь не может ввести ошибку, здесь проверяется бизнеч логика
  • тест 2 рода здесь проверяют основные варианты, где пользователь может допустить ошибку (вместе с тестами 1 рода эти тесты должно покрывать 80-90% процентов случаев)
  • тесты 3 рода, проверяют маловероятные варианты событий (делаются в последнюю очередь с целью сэкономить время)

Также к тестам первого рода можно отнести приемочные тесты, а также user stories заказчика.
Возможно оптимальным путем будет вынесение приемочных тестов в отдельное место/приложение