Skip to main content

miscellaneous tools for django

Project description

h1. description

miscellaneous tools for django


h2. existing tools


h3. local sync cache

Keep a local dict in a multi-threaded environment up-to-date.
More info, read DocString in ./local_sync_cache/local_sync_cache.py


h3. limit to usergroups

Limit something with only one field, by selecting:
* anonymous users
* staff users
* superusers
* ..all existing user groups..
More info, read DocString in ./limit_to_usergroups.py


h3. DOM compare in unittests

The Problem:
You can't easy check if e.g. some form input fields are in the reponse,
because the form rendering use a dict for storing all html attributes.
So, the ordering of form field attributes are not sorted and varied.

The Solution:
You need to parse the response content into a DOM tree and compare nodes.

We add the gread work of Gregor Müllegger at his GSoC 2011 form-rendering branch.
You will have the following assert methods inherit from:
django_tools.unittest_utils.unittest_base.BaseTestCase

* self.assertHTMLEqual() - for compare two HTML DOM trees
* self.assertDOM() - for check if nodes in response or not.
* self.assertContains() - Check if ond node occurs 'count' times in response

More info and examples in tests/test_dom_asserts.py


h3. upgrade virtualenv

A simple commandline script for call "pip install ---upgrade XY" for every package thats installed in a virtualenv.
Simply copy/symlink it into the root directory of your virtualenv and start it.

To use it, without installing django-tools:

pre. ~/$ cd goto/your_env
.../your_env/$ wget https://github.com/jedie/django-tools/raw/master/django_tools/upgrade_virtualenv.py
.../your_env/$ chmod +x upgrade_virtualenv.py
.../your_env/$ ./upgrade_virtualenv.py

This script will be obsolete, if pip has a own upgrade command, see:
https://github.com/pypa/pip/issues/59


h3. ..all others...

There exist many miscellaneous stuff. Look in the source, luke!


h2. Backwards-incompatible changes


h3. v0.9

Language code field and SelectMediaPath are renamed.

change:
*from django_tools.fields import LanguageCodeFormField*
to:
*from django_tools.fields.language_code import LanguageCodeFormField*

change and rename:
*from django_tools.fields import LanguageCodeField*
to:
*from django_tools.fields.language_code import LanguageCodeModelField*

change and rename:
*from django_tools.widgets import SelectMediaPath*
to:
*from django_tools.fields.media_path import MediaPathWidget*



h2. history

* v0.18.1
** Bugfix: Add missing template in pypi package
* v0.18.0
** NEW: Add DOM compare from Gregor Müllegger GSoC work into unittest utils.
* v0.17.1
** Bugfix in "limit_to_usergroups": Make choices "lazy": Don't access the database in __init__
* v0.17
** Add the script "upgrade_virtualenv.py"
** Add "limit_to_usergroups"
** Add "local sync cache"
** Add models.UpdateInfoBaseModel
** Update decorators.render_to
** render_to pass keyword arguments to render_to_response() (e.g.: mimetype="text/plain")
** new argument "skip_fail" in get_filtered_apps(): If True: raise excaption if app is not importable
* v0.16.4
** Bugfix: """get_db_prep_save() got an unexpected keyword argument 'connection'""" when save a SignSeparatedModelField()
* v0.16.3
** Update BrowserDebug: Use response.templates instead of response.template and make output nicer
* v0.16.2
** Merge stack info code and display better stack info on browser debug page
* v0.16.1
** Update django_tools.utils.messages.StackInfoStorage for django code changes.
* v0.16.0
** NEW: path model field (check if direcotry exist)
* v0.15.0
** NEW: Add a flexible URL field (own validator, model- and form-field)
* v0.14.1
** Bugfix: make path in MediaPathModelField relativ (remove slashes)
* v0.14
** NEW: django-tagging addon: Display existing tags under a tag field
* v0.13
** Bugfix UnicodeEncodeError in Browser debug
* v0.12
** NEW: django_tools.utils.messages.failsafe_message
* v0.11
** NEW: Store data in a secure cookie, see: utils/client_storage.py
* v0.10.1
** New: Display used templates in unittest BrowserDebug
** Bugfix: catch if last usermessages exist
* v0.10.0
** NEW: utils around django messages, see: /django_tools/utils/messages.py
* v0.9.1
** Bugfix: database column was not created: don't overwrite get_internal_type()
* v0.9
** New: stuff in /django_tools/fields/
** see also backwards-incompatible changes, above!
* v0.8.2
** New: widgets.SelectMediaPath(): Select a sub directory in settings.MEDIA_ROOT
** New: fields.SignSeparatedField()
* v0.8.1
** Add "no_args" keyword argument to installed_apps_utils.get_filtered_apps()
* v0.8.0
** Add model LanguageCode field and form LanguageCode field in Accept-Language header format (RFC 2616)
* v0.7.0
** Add decorators.py
* v0.6.0
** Add forms_utils.LimitManyToManyFields, crosspost: http://www.djangosnippets.org/snippets/1691/
* v0.5.0
** Add template/filters.py from PyLucid v0.8.x
* v0.4.0
** Add experimental "warn_invalid_template_vars"
* v0.3.1
** Bugfix: Exclude the instance if it was saved in the past.
* v0.3.0
** Add utils.installed_apps_utils
* v0.2.0
** Add models_utils, see: http://www.jensdiemer.de/_command/118/blog/detail/67/ (de)
* v0.1.0
** first version cut out from PyLucid CMS - http://www.pylucid.org



h2. pip upgrade

To do a pip upgrade in a virtual environment, run this:

pre. ~$ cd /YourVirtualEnv/bin
~/YourVirtualEnv/bin$ source activate
(YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=git+git://github.com/jedie/django-tools.git#egg=django-tools

The example used git readonly clone url. If you use subversion do this:

pre. (YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=http://svn.github.com/jedie/django-tools.git#egg=django-tools

If you have git write access, use this:

pre. (YourVirtualEnv)~/YourVirtualEnv/bin$ pip install --upgrade --verbose --editable=git+git@github.com:jedie/django-tools.git#egg=django-tools

...or just use our limit_to_usergroups.py script (see above)


h2. fast repo update

To made a fast repository update, you can run this simple shell script:

pre. ~$ cd /path/to/django-tools
/path/to/django-tools$ ./update.sh

the update script runs "git pull origin master" or "svn update".



h2. links

* Homepage: http://code.google.com/p/django-tools/
* Sourcecode: http://github.com/jedie/django-tools

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-tools-0.18.1.0714.tar.gz (36.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page