Skip to content
This repository has been archived by the owner on Jun 7, 2018. It is now read-only.

Commit

Permalink
Added travis
Browse files Browse the repository at this point in the history
  • Loading branch information
d0ugal committed Jun 18, 2012
1 parent 797b899 commit 7d1e038
Show file tree
Hide file tree
Showing 8 changed files with 62 additions and 129 deletions.
22 changes: 22 additions & 0 deletions .travis.yml
@@ -0,0 +1,22 @@
language: python
python:
- "2.6"
- "2.7"
before_install:
- export PIP_USE_MIRRORS=true
- export DJANGO_SETTINGS_MODULE=tests.settings
- export PYTHONPATH=${PYTHONPATH}:tests/
install:
- pip install .
- pip install -r requirements/tests.txt Django==$DJANGO
before_script:
- flake8 appregister
script:
- make test
env:
- DJANGO=1.3.1
- DJANGO=1.4
notifications:
irc:
channels:
- "irc.freenode.org#pacha"
1 change: 1 addition & 0 deletions MANIFEST.in
@@ -1,3 +1,4 @@
include AUTHORS
include README.rst
include LICENSE
include requirements/*.txt
3 changes: 3 additions & 0 deletions Makefile
@@ -0,0 +1,3 @@
test:
coverage run --branch --source=appregister python setup.py test
coverage report
9 changes: 0 additions & 9 deletions dev_requirements.txt

This file was deleted.

File renamed without changes.
7 changes: 7 additions & 0 deletions requirements/test.txt
@@ -0,0 +1,7 @@
-r requirements.txt
coverage
django-fixture-generator
south
Sphinx
tox
versiontools
135 changes: 18 additions & 117 deletions setup.py
@@ -1,133 +1,34 @@
import os
import sys
import codecs
from fnmatch import fnmatchcase
from distutils.util import convert_path
from setuptools import setup, find_packages


def read(fname):
return codecs.open(os.path.join(os.path.dirname(__file__), fname)).read()

# Provided as an attribute, so you can append to these instead
# of replicating them:
standard_exclude = ('*.py', '*.pyc', '*$py.class', '*~', '.*', '*.bak')
standard_exclude_directories = ('.*', 'CVS', '_darcs', './build',
'./dist', 'EGG-INFO', '*.egg-info')


# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
# Note: you may want to copy this into your setup.py file verbatim, as
# you can't import this from another package, when you don't know if
# that package is installed yet.


def find_package_data(
where='.', package='',
exclude=standard_exclude,
exclude_directories=standard_exclude_directories,
only_in_packages=True,
show_ignored=False):
"""
Return a dictionary suitable for use in ``package_data``
in a distutils ``setup.py`` file.
# -*- coding: utf-8 -*-

The dictionary looks like::
{'package': [files]}
Where ``files`` is a list of all the files in that package that
don't match anything in ``exclude``.
If ``only_in_packages`` is true, then top-level directories that
are not packages won't be included (but directories under packages
will).
Directories matching any pattern in ``exclude_directories`` will
be ignored; by default directories with leading ``.``, ``CVS``,
and ``_darcs`` will be ignored.
from setuptools import setup, find_packages

If ``show_ignored`` is true, then all the files that aren't
included in package data are shown on stderr (for debugging
purposes).
with open('README.rst') as f:
readme = f.read()

Note patterns use wildcards, or can be exact paths (including
leading ``./``), and all searching is case-insensitive.
"""
with open('LICENSE') as f:
license = f.read()

out = {}
stack = [(convert_path(where), '', package, only_in_packages)]
while stack:
where, prefix, package, only_in_packages = stack.pop(0)
for name in os.listdir(where):
fn = os.path.join(where, name)
if os.path.isdir(fn):
bad_name = False
for pattern in exclude_directories:
if (fnmatchcase(name, pattern)
or fn.lower() == pattern.lower()):
bad_name = True
if show_ignored:
print >> sys.stderr, (
"Directory %s ignored by pattern %s"
% (fn, pattern))
break
if bad_name:
continue
if (os.path.isfile(os.path.join(fn, '__init__.py'))
and not prefix):
if not package:
new_package = name
else:
new_package = package + '.' + name
stack.append((fn, '', new_package, False))
else:
stack.append((fn, prefix + name + '/', package, only_in_packages))
elif package or not only_in_packages:
# is a file
bad_name = False
for pattern in exclude:
if (fnmatchcase(name, pattern)
or fn.lower() == pattern.lower()):
bad_name = True
if show_ignored:
print >> sys.stderr, (
"File %s ignored by pattern %s"
% (fn, pattern))
break
if bad_name:
continue
out.setdefault(package, []).append(prefix + name)
return out
with open('requirements/install.txt') as f:
requirements = f.readlines()

with open('requirements/test.txt') as f:
test_requirements = requirements + f.readlines()[1:] + ['django', ]

setup(
name="django-consent",
version=":versiontools:consent:",
url='http://consent.readthedocs.org/',
license='MIT',
description="A Django app for managing permissions that a user has granted the website to do. This could be used for a number of requests, from asking the user if you can post to their twitter, or send them newsletter updates.",
long_description=read('README.rst'),
license=license,
description="A Django app for managing permissions that a user has granted the website to do. This could be used for a number of requests, from asking the user if you can post to their twitter, or send them newsletter updates.",
long_description=readme,
author='Dougal Matthews',
author_email='dougal85@gmail.com',
packages=find_packages(exclude=['tests', 'tests.*']),
package_data=find_package_data('consent', only_in_packages=False),
classifiers=[
'Development Status :: 5 - Production/Stable',
'Framework :: Django',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Topic :: Internet :: WWW/HTTP',
],
zip_safe=False,
setup_requires=[
'versiontools >= 1.6',
],
tests_require=["Django>=1.2"],
test_suite="runtests.runtests"
test_suite="runtests.runtests",
tests_require=test_requirements,
packages=find_packages(exclude=('docs', )),
zip_safe=False,
install_requires=requirements
)
14 changes: 11 additions & 3 deletions tox.ini
Expand Up @@ -9,7 +9,7 @@ setenv =
PYTHONPATH = {toxinidir}
commands =
{envbindir}/coverage erase
{envbindir}/coverage run --branch --include=*consent* --omit=*migrations* {envbindir}/django-admin.py test
{envbindir}/coverage run --branch --include=*consent* --omit=*tox* {envbindir}/django-admin.py test
{envbindir}/coverage report -m


Expand All @@ -29,17 +29,25 @@ commands =

[testenv:django-trunk]
deps =
git+git://github.com/d0ugal/django-fixture-generator.git@dc5ffa2cbfbac30473aba4a01acfd009b4ca8f79#egg=django-fixture-generator
git+git://github.com/d0ugal/django-fixture-generator.git#egg=django-fixture-generator
coverage
south
svn+http://code.djangoproject.com/svn/django/trunk#egg=django
tox
versiontools

[testenv:django-1.4.X]
deps =
git+git://github.com/d0ugal/django-fixture-generator.git#egg=django-fixture-generator
coverage
django==1.4
south
tox
versiontools

[testenv:django-1.3.X]
deps =
git+git://github.com/d0ugal/django-fixture-generator.git@dc5ffa2cbfbac30473aba4a01acfd009b4ca8f79#egg=django-fixture-generator
git+git://github.com/d0ugal/django-fixture-generator.git#egg=django-fixture-generator
coverage
django==1.3.1
south
Expand Down

0 comments on commit 7d1e038

Please sign in to comment.