diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | CHANGELOG.rst | 24 | ||||
| -rw-r--r-- | MANIFEST.in | 3 | ||||
| -rw-r--r-- | Makefile | 17 | ||||
| -rw-r--r-- | README.rst | 28 | ||||
| -rw-r--r-- | brevisurl/__init__.py | 6 | ||||
| -rw-r--r-- | brevisurl/models.py | 7 | ||||
| -rw-r--r-- | brevisurl/tests/templatetags/test_brevisurltags.py | 4 | ||||
| -rw-r--r-- | manage.py | 13 | ||||
| -rwxr-xr-x | scripts/setup.sh | 74 | ||||
| -rwxr-xr-x | scripts/teardown.sh | 4 | ||||
| -rw-r--r-- | setup.py | 5 |
12 files changed, 175 insertions, 12 deletions
@@ -7,3 +7,5 @@ pip-log.txt* *.swn /dist/ /django_brevisurl.egg-info/ +/settings.py +/test.db
\ No newline at end of file diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 0000000..770a702 --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,24 @@ +Version 2.0.0 +------------- + +**Features** +- added support for django 1.5 +- added south as requirement, creating migrations is now possible + + +Version 1.0 +----------- + +Version 0.9.3 +------------- + +Version 0.9.2 +------------- + +Version 0.9.1 +------------- + +Version 0.9 +----------- + +Initial version
\ No newline at end of file diff --git a/MANIFEST.in b/MANIFEST.in index b1eaf85..a56c95b 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ include README.rst -include LICENSE
\ No newline at end of file +include LICENSE +include CHANGELOG.rst
\ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e115ba4 --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ +bootstrap: + pip install -e . --use-mirrors + pip install "file://`pwd`#egg=brevisurl" --use-mirrors + ./scripts/setup.sh + python manage.py syncdb --noinput --migrate + + +test: bootstrap + @echo "Running Python tests" + python manage.py test brevisurl + @echo "" + +clean: + rm -rf ./dist + rm -rf ./django_brevisurl.egg-info + rm -rf test.db + rm -rf settings.py
\ No newline at end of file @@ -184,6 +184,32 @@ To run the test run command: :: $ python manage.py test brevisurl +Development setup +----------------- +:: + + $ make bootstrap + $ python manage.py test brevisurl + +Tests +----- + +**Tested on evnironment** + +- Linux Mint 15 Olivia 64-bit +- python 2.7.4 +- python unitest + +**Running tests** + +To run the tests, execute one of the following command::: + + $ python manage.py test brevisurl + +Or::: + + $ make test + Author ------ @@ -198,4 +224,4 @@ References - http://github.com/CodeScaleInc/django-brevisurl - http://pypi.python.org/pypi/django-brevisurl/ - - http://www.codescale.net/en/community#django-brevisurl + - http://www.codescale.net/en/community#django-brevisurl
\ No newline at end of file diff --git a/brevisurl/__init__.py b/brevisurl/__init__.py index b929f1f..9429381 100644 --- a/brevisurl/__init__.py +++ b/brevisurl/__init__.py @@ -4,8 +4,8 @@ try: except ImportError: from StringIO import StringIO -import brevisurl.settings -from brevisurl.utils import load_object + +__versionstr__ = '2.0.0' def get_connection(backend=None, fail_silently=False, **kwargs): @@ -23,6 +23,8 @@ def get_connection(backend=None, fail_silently=False, **kwargs): :rtype: brevisurl.backends.base.BaseBrevisUrlBackend """ + import brevisurl.settings + from brevisurl.utils import load_object path = backend or brevisurl.settings.DEFAULT_BACKEND klass = load_object(path) return klass(fail_silently=fail_silently, **kwargs) diff --git a/brevisurl/models.py b/brevisurl/models.py index 84aeff1..cb5575b 100644 --- a/brevisurl/models.py +++ b/brevisurl/models.py @@ -2,7 +2,6 @@ import hashlib import logging from django.core.exceptions import ValidationError -from django.conf import settings from django.db import models from django.core.validators import URLValidator @@ -15,7 +14,8 @@ log = logging.getLogger(__name__) class ShortUrl(models.Model): """Model that represents shortened url.""" - original_url = models.URLField(max_length=brevis.settings.LOCAL_BACKEND_ORIGINAL_URL_MAX_LENGTH, null=False, blank=False) + original_url = models.URLField(max_length=brevisurl.settings.LOCAL_BACKEND_ORIGINAL_URL_MAX_LENGTH, + null=False, blank=False) original_url_hash = models.CharField(max_length=64, null=False, blank=False) shortened_url = models.URLField(max_length=200, null=False, blank=False, unique=True) backend = models.CharField(max_length=200, null=False, blank=False) @@ -27,7 +27,8 @@ class ShortUrl(models.Model): def get_connection(self, fail_silently=False): if not hasattr(self, 'brevis_connection'): if self.pk is not None: - self.brevis_connection = get_connection(backend=self.backend, fail_silently=fail_silently) + self.brevis_connection = get_connection(backend=self.backend, + fail_silently=fail_silently) else: self.brevis_connection = get_connection(fail_silently=fail_silently) return self.brevis_connection diff --git a/brevisurl/tests/templatetags/test_brevisurltags.py b/brevisurl/tests/templatetags/test_brevisurltags.py index 808dc2d..181b7a7 100644 --- a/brevisurl/tests/templatetags/test_brevisurltags.py +++ b/brevisurl/tests/templatetags/test_brevisurltags.py @@ -30,7 +30,7 @@ class TestShortenUrlTag(TestCase): def test_absurl_tag(self): url = Template(""" {% load brevisurltags %} - {% absurl brevisurl_redirect token='12345' as brevis_url %} + {% absurl "brevisurl_redirect" token='12345' as brevis_url %} {{ brevis_url|shorten_url }} """).render(Context()).strip() self.assertEqual(ShortUrl.objects.all().count(), 1) @@ -42,7 +42,7 @@ class TestShortenUrlTag(TestCase): brevisurl.settings.LOCAL_BACKEND_DOMAIN = 'http://brevisurl.net/' url = Template(""" {% load brevisurltags %} - {% absurl brevisurl_redirect token='12345' as brevis_url %} + {% absurl "brevisurl_redirect" token='12345' as brevis_url %} {{ brevis_url|shorten_url }} """).render(Context()).strip() self.assertEqual(ShortUrl.objects.all().count(), 1) diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..ddc8e33 --- /dev/null +++ b/manage.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python +import os +import sys +from subprocess import call + + +if __name__ == "__main__": + call("./scripts/setup.sh") + os.environ["DJANGO_SETTINGS_MODULE"] = "settings" + + from django.core.management import execute_from_command_line + + execute_from_command_line(sys.argv) diff --git a/scripts/setup.sh b/scripts/setup.sh new file mode 100755 index 0000000..fbc6896 --- /dev/null +++ b/scripts/setup.sh @@ -0,0 +1,74 @@ +#!/bin/sh + +SETTINGS='settings.py' +cat > $SETTINGS <<EOF +DEBUG = True + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': 'test.db', + }, +} + +MIDDLEWARE_CLASSES = ( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', +) + +TEMPLATE_CONTEXT_PROCESSORS = ( + 'django.contrib.auth.context_processors.auth', + 'django.core.context_processors.debug', + 'django.core.context_processors.i18n', + 'django.core.context_processors.media', + 'django.core.context_processors.static', + 'django.core.context_processors.request', + 'django.core.context_processors.tz', + 'django.contrib.messages.context_processors.messages' +) + +INSTALLED_APPS = ( + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.staticfiles', + 'django.contrib.sites', + 'south', + 'brevisurl', +) + +SITE_ID = 1 + +STATIC_URL = '/static/' + +SECRET_KEY = 'secret_key' +ROOT_URLCONF = 'brevisurl.urls' + +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'handlers': { + 'null': { + 'level': 'DEBUG', + 'class': 'logging.NullHandler' + }, + 'console': { + 'level': 'DEBUG', + 'class': 'logging.StreamHandler' + }, + }, + 'loggers': { + '': { + 'handlers': ['null'], + 'level': 'DEBUG' + } + } +} + +EOF + +export PYTHONPATH=. +export DJANGO_SETTINGS_MODULE=settings
\ No newline at end of file diff --git a/scripts/teardown.sh b/scripts/teardown.sh new file mode 100755 index 0000000..1110322 --- /dev/null +++ b/scripts/teardown.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +rm -f $SETTINGS* +rm -f test.db
\ No newline at end of file @@ -13,10 +13,9 @@ def read(fname): """ return open(os.path.join(os.path.dirname(__file__), fname)).read() - setup( name='django-brevisurl', - version='1.0', + version=__import__('brevisurl').__versionstr__, description='django-brevisurl is django app for shortening urls', long_description=read('README.rst'), author=u'VladimĂr Gorej', @@ -26,7 +25,7 @@ setup( license='BSD', keywords = 'url short shortener', packages=find_packages('.'), - install_requires=['django'], + install_requires=['django', 'south'], platforms='any', classifiers=[ 'Development Status :: 5 - Production/Stable', |
