Django-nose and coverage

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. Теперь мы можем видеть, что покрыто тестами,… Read more »

Skip function in django tests

Posted by & filed under python.

Данный код пропускает тест-метод «a» from django.utils.unittest import skip @skip def a(): pass

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

Posted by & filed under python.

Ускорения тестов django: используем sqlite (django.db.backends.sqlite3) используем 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: Нашелся даже еще проще вариант разместить БД в памяти. Не нужно работать… Read more »

Django-nose

Posted by & filed under django.

Django-nose — приложение упрощающее тестирование в django. Основными фишками является то, что: — позволяет запускать только твои тесты, и пропускать системные тесты в django — позволяет выполнять отдельные тесты в отдельных файлах  и причем файл не обязан называться tests.py — позволяет создать визуальное покрытие тестами кода (создает html файлик, в котором отдельным цветом выделены участки… Read more »

Создание пустого HttpRequest в Django

Posted by & filed under django.

Задача: создать пустой HttpRequest (или не пустой 🙂 ) Решение: Найдено на просторах инета: from django.test import RequestFactory request_factory = RequestFactory() request = request_factory.post(‘/fake-path’, data={‘name’: u’Waldo’}) Оригинал: http://tech.novapost.fr/django-unit-test-your-views-en.html

Django. One-to-many relationship

Posted by & filed under django.

Определение: class Aclass(models.Model): #some fields here pass … class Bclass(models.Model): b_field = models.ForeignKey(Aclass) Использование: a=Aclass.objects.get(pk=1) a.aclass_set.objects.all()

Django-imagekit example ( Django-imagekit пример работы)

Posted by & filed under django, python.

Пример работы (делаем масштабирование картинки по ширине и высоте, но не превосходящее width_max, height_max): from django.db import models from django.forms.fields import CharField from imagekit.models import ImageSpec from imagekit.processors import resize, Adjust from django.forms import ModelForm, forms class FormatImage(object): def process(self, image): # масштабируем до width_max, height_max width_max=605 height_max=475 c=resize.Fit(width_max,height_max,True) image=c.process(image) return image class Photo(models.Model): original_image… Read more »

Django, ModelForm and upload file (Django, ModelForm и загрузка файла)

Posted by & filed under django, python.

Не очевидная для меня вещь с загрузкой файла и класса наследника ModelForm, нужно указать files=request.FILES Иначе появлялась ошибка This field is required. Хотя оно там было заполнено. рабочий пример: if request.POST: pcf=PhotoCandidateForm(request.POST,files=request.FILES) if pcf.is_valid(): pcf.save() message=’Data is saved. Thanks’ Сумбурно получилось, но так как пишу для себя, то должен сам себя понять

Django под Windows XP

Posted by & filed under python, windows.

Настраивать Django под Windows XP тот ещё секс, в общем проблема была в точности как http://victor-k-development.blogspot.com/2010/07/unicodedecodeerror-django.html Резюмирую: проблема UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe0 in position 0: ordinal not in range(128) Решение: В моем случае проблема заключалась в том, что в реестре в разделе[HKEY_CLASSES_ROOT\CLSID\{4063BE15-3B08-470D-A0D5-B37161CFFD69}\EnableFullPage\MIME] содержались подразделы содержащие в названии кириллицу. При удалении этих разделов они автоматически… Read more »

Django, South, cоздание первой миграции

Posted by & filed under python.

Cоздание первой миграции в South: python ./manage.py schemamigration foo —initialpython ./manage.py migrate foo —fake После добавления нового поля в модель foo python ./manage.py schemamigration foo —auto