M docs/development/environment.rst => docs/development/environment.rst +2 -3
@@ 7,6 7,5 @@ Setting up a development environment
* Install the requirements::
$ pip install --upgrade pip setuptools
- $ pip install -e .
- $ pip install pytest pytest-django pytest-pythonpath pytest-cov mock django-functest
-
+ $ pip install -e .[devel]
+ $ pip install tox
M docs/development/index.rst => docs/development/index.rst +19 -8
@@ 70,7 70,7 @@ Ready to contribute? Here's how to set up `django-wiki` for local development.
$ mkvirtualenv django-wiki
$ cd django-wiki/
- $ python setup.py develop
+ $ pip install -e .[devel]
4. Create a branch for local development::
@@ 78,21 78,30 @@ Ready to contribute? Here's how to set up `django-wiki` for local development.
Now you can make your changes locally.
-5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox::
+5. As you are making changes you may want to verify that changes are
+ passing all the relevant styling and functional/unit tests::
- $ tox -e lint
- $ py.test # Run tests in current environment
- $ tox
+ $ flake8
+ $ pytest
+
+6. When you're done making changes, perform one final round of
+ testing, and also ensure relevant tests pass with all supported
+ Python versions with tox::
+
+ $ flake8
+ $ pytest
+ $ tox -e lint # Runs linter within isolated environment
+ $ tox # Runs all tests that pytest would run, just with various Python/Django combinations
To get flake8 and tox, just pip install them into your virtualenv.
-6. Commit your changes and push your branch to GitHub::
+7. Commit your changes and push your branch to GitHub::
$ git add .
$ git commit -m "Your detailed description of your changes."
$ git push origin name-of-your-bugfix-or-feature
-7. Submit a pull request through the GitHub website.
+8. Submit a pull request through the GitHub website.
Pull Request Guidelines
-----------------------
@@ 112,7 121,9 @@ Tips
To run a subset of tests::
- $ py.test tests.test_django-wiki
+ $ pytest tests/core/test_basic.py # All tests from a single file.
+ $ pytest tests/core/test_basic.py::URLPathTests # All tests from a single class.
+ $ pytest tests/core/test_basic.py::URLPathTests::test_manager # Just one test.
Roadmap
M setup.cfg => setup.cfg +4 -1
@@ 5,7 5,10 @@ universal = 1
ignore = E501
max-line-length = 160
max-complexity = 10
-exclude = */*migrations
+exclude = .svn,CVS,.bzr,.hg,.git,__pycache__,.tox,.eggs,*.egg,*/*migrations,testproject
[metadata]
description-file = README.rst
+
+[aliases]
+test=pytest<
\ No newline at end of file
M setup.py => setup.py +29 -3
@@ 23,7 23,7 @@ def get_path(fname):
return os.path.join(os.path.dirname(__file__), fname)
-requirements = [
+install_requirements = [
"Django>=1.11,<2.0",
"bleach>=1.5,<2",
"Pillow",
@@ 34,6 34,30 @@ requirements = [
"Markdown>=2.6,<2.7",
]
+test_requirements = [
+ 'django-functest>=1.0,<1.1',
+ 'mock>=2.0,<2.1',
+ 'pytest>=3.4,<3.5',
+ 'pytest-django>=3.1,<3.2',
+ 'pytest-cov>=2.4,<2.5',
+ 'pytest-pythonpath>=0.7,<0.8',
+]
+
+test_lint_requirements = [
+ 'flake8>=3.5,<3.6',
+]
+
+setup_requirements = [
+ 'pytest-runner',
+]
+
+development_requirements = test_requirements + test_lint_requirements
+
+extras_requirements = {
+ 'devel': development_requirements,
+ 'test': test_requirements,
+ 'testlint': test_lint_requirements,
+}
setup(
name="wiki",
@@ 49,7 73,7 @@ setup(
py_modules=[os.path.splitext(os.path.basename(path))[0] for path in glob('src/*.py')],
long_description=open('README.rst').read(),
zip_safe=False,
- install_requires=requirements,
+ install_requires=install_requirements,
classifiers=[
'Development Status :: 5 - Production/Stable',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
@@ 68,5 92,7 @@ setup(
'Topic :: Software Development :: Libraries :: Application Frameworks',
],
include_package_data=True,
- test_suite='runtests',
+ setup_requires=setup_requirements,
+ tests_require=test_requirements,
+ extras_require=extras_requirements,
)
M tox.ini => tox.ini +3 -19
@@ 33,24 33,8 @@ commands =
usedevelop = true
deps =
- coverage
- pytest==3.0.7
- pytest-django==3.1.2
- pytest-pythonpath==0.7.1
- pytest-cov==2.4.0
- Pillow==2.3.0
- django-classy-tags==0.4
- mock>=2.0
- Markdown==2.6.7
- django_nyt==1.0
- bleach==1.5.0
- django111: Django==1.11
- django-mptt==0.8.6
- django-sekizai==0.10.0
- sorl-thumbnail==12.3
- django-functest==1.0.2
- django-webtest==1.9.2
- WebTest==2.0.28
+ .[test]
+ django111: Django>=1.11,<2.0
basepython =
py34: python3.4
@@ 60,7 44,7 @@ basepython =
[testenv:lint]
basepython = python3.4
-deps = flake8
+deps = .[testlint]
commands =
flake8 src/wiki
flake8 tests/