aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimir Gorej2013-12-07 12:00:20 +0100
committerVladimir Gorej2013-12-07 12:00:20 +0100
commita21caf8e1b119d75859cfb4118ba7cb908805477 (patch)
treeb442e38460ffd42adaf56bba13325a8f37c92a54
parente17323d333569dc44e007d54c477298c1ae4b0d0 (diff)
downloaddjango-brevisurl-a21caf8e1b119d75859cfb4118ba7cb908805477.tar.bz2
Version 2.0.0 bump.2.0.0
-rw-r--r--.gitignore2
-rw-r--r--CHANGELOG.rst24
-rw-r--r--MANIFEST.in3
-rw-r--r--Makefile17
-rw-r--r--README.rst28
-rw-r--r--brevisurl/__init__.py6
-rw-r--r--brevisurl/models.py7
-rw-r--r--brevisurl/tests/templatetags/test_brevisurltags.py4
-rw-r--r--manage.py13
-rwxr-xr-xscripts/setup.sh74
-rwxr-xr-xscripts/teardown.sh4
-rw-r--r--setup.py5
12 files changed, 175 insertions, 12 deletions
diff --git a/.gitignore b/.gitignore
index 972d7d1..29cfc82 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/README.rst b/README.rst
index ff18f3e..b3dff6b 100644
--- a/README.rst
+++ b/README.rst
@@ -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
diff --git a/setup.py b/setup.py
index b6e23bb..56d64ea 100644
--- a/setup.py
+++ b/setup.py
@@ -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',