diff --git a/.gitignore b/.gitignore index ced995972..437c9f0bd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ build/ dist/ venv/ +.tox/ m3 diff --git a/README.md b/README.md index b7fb1aaca..53b9aefa8 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,11 @@ sudo ./venv/bin/letsencrypt Note, that letsencrypt does not yet handle Debian unstable's Apache2 conf layout. -## Developing +## Hacking -`python setup.py develop --user` +1. Bootstrap: `./venv/bin/python setup.py dev` + +2. Test code base: `./venv/bin/tox` ## Command line usage diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 000000000..a848a847e --- /dev/null +++ b/setup.cfg @@ -0,0 +1,5 @@ +[easy_install] +zip_ok = false + +[aliases] +dev = develop easy_install letsencrypt[testing] diff --git a/setup.py b/setup.py index b39a8230d..bb7a03f1b 100755 --- a/setup.py +++ b/setup.py @@ -2,6 +2,22 @@ from setuptools import setup +install_requires = [ + 'jsonschema', + 'M2Crypto', + 'pycrypto', + 'python-augeas', + 'python2-pythondialog', + 'requests', +] + +testing_extras = [ + 'coverage', + 'nose', + 'pylint', + 'tox>=1.6', +] + setup( name="letsencrypt", version="0.1", @@ -14,18 +30,15 @@ setup( 'letsencrypt.client', 'letsencrypt.scripts', ], - install_requires=[ - 'jsonschema', - 'M2Crypto', - 'pycrypto', - 'python-augeas', - 'python2-pythondialog', - 'requests', - ], dependency_links=[ # http://augeas.net/download.html 'https://fedorahosted.org/released/python-augeas/', ], + install_requires=install_requires, + tests_require=install_requires, + extras_require={ + 'testing': testing_extras, + }, entry_points={ 'console_scripts': [ 'letsencrypt = letsencrypt.scripts.main:main', diff --git a/tox.ini b/tox.ini new file mode 100644 index 000000000..88127ba9a --- /dev/null +++ b/tox.ini @@ -0,0 +1,19 @@ +# Tox (http://tox.testrun.org/) is a tool for running tests +# in multiple virtualenvs. This configuration file will run the +# test suite on all supported python versions. To use it, "pip install tox" +# and then run "tox" from this directory. + +[tox] +envlist = py26, py27, lint + +[testenv] +# install_command requires tox>=1.6 +install_command = pip install --process-dependency-links {opts} {packages} +commands = nosetests +deps = + nose + +[testenv:lint] +commands = pylint letsencrypt +deps = + pylint \ No newline at end of file