Merge pull request #81 from tzangms/feature/tox

Add tox
This commit is contained in:
tzangms 2016-03-21 10:51:58 +08:00
commit d709e2bf63
9 changed files with 461 additions and 11 deletions

3
.gitignore vendored
View File

@ -5,3 +5,6 @@
docs/_build
/build
/dist
.cache
.tox
.python-version

View File

@ -1,15 +1,26 @@
language: python
env:
matrix:
- TOX_ENV=py27-dj15
- TOX_ENV=py27-dj16
- TOX_ENV=py27-dj17
- TOX_ENV=py27-dj18
- TOX_ENV=py34-dj15
- TOX_ENV=py34-dj16
- TOX_ENV=py34-dj17
- TOX_ENV=py34-dj18
python:
- "2.7"
- "3.4"
- "3.5"
install:
- pip install coverage coveralls
- pip install tox coverage coveralls
script:
- coverage run --source=bootstrapform setup.py test
#- coverage run --source=bootstrapform setup.py test
- tox -e $TOX_ENV
after_success:
- coveralls

View File

@ -0,0 +1,99 @@
<div class="form-group">
<label class="control-label " for="id_char_field">Char field</label>
<div class=" ">
<input class=" form-control" id="id_char_field" name="char_field" type="text" />
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_choice_field">Choice field</label>
<div class=" ">
<select class=" form-control" id="id_choice_field" name="choice_field">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label ">Radio choice</label>
<div class="">
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="0" />
Zero
</label>
</div>
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="1" />
One
</label>
</div>
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="2" />
Two
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_multiple_choice">Multiple choice</label>
<div class=" ">
<select multiple="multiple" class=" form-control" id="id_multiple_choice" name="multiple_choice">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_multiple_checkbox">Multiple checkbox</label>
<div class=" multiple-checkbox">
<ul id="id_multiple_checkbox">
<li><label for="id_multiple_checkbox_0"><input id="id_multiple_checkbox_0" name="multiple_checkbox" type="checkbox" value="0" /> Zero</label></li>
<li><label for="id_multiple_checkbox_1"><input id="id_multiple_checkbox_1" name="multiple_checkbox" type="checkbox" value="1" /> One</label></li>
<li><label for="id_multiple_checkbox_2"><input id="id_multiple_checkbox_2" name="multiple_checkbox" type="checkbox" value="2" /> Two</label></li>
</ul>
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_file_fied">File fied</label>
<div class=" ">
<input id="id_file_fied" name="file_fied" type="file" />
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_password_field">Password field</label>
<div class=" ">
<input class=" form-control" id="id_password_field" name="password_field" type="password" />
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_textarea">Textarea</label>
<div class=" ">
<textarea class=" form-control" cols="40" id="id_textarea" name="textarea" rows="10">
</textarea>
</div>
</div>
<div class="form-group">
<div class="">
<div class="checkbox">
<label >
<input id="id_boolean_field" name="boolean_field" type="checkbox" /> <span>Boolean field</span>
</label>
</div>
</div>
</div>

View File

@ -0,0 +1,99 @@
<div class="form-group">
<label class="control-label " for="id_char_field">Char field</label>
<div class=" ">
<input class=" form-control" id="id_char_field" name="char_field" type="text" />
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_choice_field">Choice field</label>
<div class=" ">
<select class=" form-control" id="id_choice_field" name="choice_field">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label ">Radio choice</label>
<div class="">
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="0" />
Zero
</label>
</div>
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="1" />
One
</label>
</div>
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="2" />
Two
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_multiple_choice">Multiple choice</label>
<div class=" ">
<select multiple="multiple" class=" form-control" id="id_multiple_choice" name="multiple_choice">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_multiple_checkbox">Multiple checkbox</label>
<div class=" multiple-checkbox">
<ul>
<li><label for="id_multiple_checkbox_0"><input id="id_multiple_checkbox_0" name="multiple_checkbox" type="checkbox" value="0" /> Zero</label></li>
<li><label for="id_multiple_checkbox_1"><input id="id_multiple_checkbox_1" name="multiple_checkbox" type="checkbox" value="1" /> One</label></li>
<li><label for="id_multiple_checkbox_2"><input id="id_multiple_checkbox_2" name="multiple_checkbox" type="checkbox" value="2" /> Two</label></li>
</ul>
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_file_fied">File fied</label>
<div class=" ">
<input id="id_file_fied" name="file_fied" type="file" />
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_password_field">Password field</label>
<div class=" ">
<input class=" form-control" id="id_password_field" name="password_field" type="password" />
</div>
</div>
<div class="form-group">
<label class="control-label " for="id_textarea">Textarea</label>
<div class=" ">
<textarea class=" form-control" cols="40" id="id_textarea" name="textarea" rows="10">
</textarea>
</div>
</div>
<div class="form-group">
<div class="">
<div class="checkbox">
<label >
<input id="id_boolean_field" name="boolean_field" type="checkbox" /> <span>Boolean field</span>
</label>
</div>
</div>
</div>

View File

@ -0,0 +1,102 @@
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_char_field">Char field</label>
<div class=" col-sm-10 col-lg-10 ">
<input class=" form-control" id="id_char_field" name="char_field" type="text" />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_choice_field">Choice field</label>
<div class=" col-sm-10 col-lg-10 ">
<select class=" form-control" id="id_choice_field" name="choice_field">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 ">Radio choice</label>
<div class=" col-sm-10 col-lg-10">
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="0" />
Zero
</label>
</div>
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="1" />
One
</label>
</div>
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="2" />
Two
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_multiple_choice">Multiple choice</label>
<div class=" col-sm-10 col-lg-10 ">
<select multiple="multiple" class=" form-control" id="id_multiple_choice" name="multiple_choice">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_multiple_checkbox">Multiple checkbox</label>
<div class=" col-sm-10 col-lg-10 multiple-checkbox">
<ul id="id_multiple_checkbox">
<li><label for="id_multiple_checkbox_0"><input id="id_multiple_checkbox_0" name="multiple_checkbox" type="checkbox" value="0" /> Zero</label></li>
<li><label for="id_multiple_checkbox_1"><input id="id_multiple_checkbox_1" name="multiple_checkbox" type="checkbox" value="1" /> One</label></li>
<li><label for="id_multiple_checkbox_2"><input id="id_multiple_checkbox_2" name="multiple_checkbox" type="checkbox" value="2" /> Two</label></li>
</ul>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_file_fied">File fied</label>
<div class=" col-sm-10 col-lg-10 ">
<input id="id_file_fied" name="file_fied" type="file" />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_password_field">Password field</label>
<div class=" col-sm-10 col-lg-10 ">
<input class=" form-control" id="id_password_field" name="password_field" type="password" />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_textarea">Textarea</label>
<div class=" col-sm-10 col-lg-10 ">
<textarea class=" form-control" cols="40" id="id_textarea" name="textarea" rows="10">
</textarea>
</div>
</div>
<div class="form-group">
<div class=" col-sm-offset-2 col-sm-10 col-lg-offset-2 col-lg-10">
<div class="checkbox">
<label >
<input id="id_boolean_field" name="boolean_field" type="checkbox" /> <span>Boolean field</span>
</label>
</div>
</div>
</div>

View File

@ -0,0 +1,102 @@
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_char_field">Char field</label>
<div class=" col-sm-10 col-lg-10 ">
<input class=" form-control" id="id_char_field" name="char_field" type="text" />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_choice_field">Choice field</label>
<div class=" col-sm-10 col-lg-10 ">
<select class=" form-control" id="id_choice_field" name="choice_field">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 ">Radio choice</label>
<div class=" col-sm-10 col-lg-10">
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="0" />
Zero
</label>
</div>
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="1" />
One
</label>
</div>
<div class="radio">
<label>
<input name="radio_choice" type="radio" value="2" />
Two
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_multiple_choice">Multiple choice</label>
<div class=" col-sm-10 col-lg-10 ">
<select multiple="multiple" class=" form-control" id="id_multiple_choice" name="multiple_choice">
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_multiple_checkbox">Multiple checkbox</label>
<div class=" col-sm-10 col-lg-10 multiple-checkbox">
<ul>
<li><label for="id_multiple_checkbox_0"><input id="id_multiple_checkbox_0" name="multiple_checkbox" type="checkbox" value="0" /> Zero</label></li>
<li><label for="id_multiple_checkbox_1"><input id="id_multiple_checkbox_1" name="multiple_checkbox" type="checkbox" value="1" /> One</label></li>
<li><label for="id_multiple_checkbox_2"><input id="id_multiple_checkbox_2" name="multiple_checkbox" type="checkbox" value="2" /> Two</label></li>
</ul>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_file_fied">File fied</label>
<div class=" col-sm-10 col-lg-10 ">
<input id="id_file_fied" name="file_fied" type="file" />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_password_field">Password field</label>
<div class=" col-sm-10 col-lg-10 ">
<input class=" form-control" id="id_password_field" name="password_field" type="password" />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2 col-lg-2 " for="id_textarea">Textarea</label>
<div class=" col-sm-10 col-lg-10 ">
<textarea class=" form-control" cols="40" id="id_textarea" name="textarea" rows="10">
</textarea>
</div>
</div>
<div class="form-group">
<div class=" col-sm-offset-2 col-sm-10 col-lg-offset-2 col-lg-10">
<div class="checkbox">
<label >
<input id="id_boolean_field" name="boolean_field" type="checkbox" /> <span>Boolean field</span>
</label>
</div>
</div>
</div>

View File

@ -1,9 +1,9 @@
import os
from distutils.version import StrictVersion
import django
from django.test import TestCase
from django.template import Template, Context
from django.core.management import call_command
from django import forms
@ -37,15 +37,20 @@ class ExampleForm(forms.Form):
class BootstrapTemplateTagTests(TestCase):
maxDiff = None
def setUp(self):
call_command('migrate', interactive=False)
def test_basic_form(self):
form = ExampleForm()
html = Template("{% load bootstrap %}{{ form|bootstrap }}").render(Context({'form': form}))
tpl = os.path.join('fixtures', 'basic.html')
if StrictVersion(django.get_version()) >= StrictVersion('1.7'):
fixture = 'basic.html'
elif StrictVersion(django.get_version()) >= StrictVersion('1.6'):
fixture = 'basic_dj16.html'
else:
fixture = 'basic_old.html'
tpl = os.path.join('fixtures', fixture)
with open(os.path.join(TEST_DIR, tpl)) as f:
content = f.read()
@ -56,7 +61,14 @@ class BootstrapTemplateTagTests(TestCase):
html = Template("{% load bootstrap %}{{ form|bootstrap_horizontal }}").render(Context({'form': form}))
tpl = os.path.join('fixtures', 'horizontal.html')
if StrictVersion(django.get_version()) >= StrictVersion('1.7'):
fixture = 'horizontal.html'
elif StrictVersion(django.get_version()) >= StrictVersion('1.6'):
fixture = 'horizontal_dj16.html'
else:
fixture = 'horizontal_old.html'
tpl = os.path.join('fixtures', fixture)
with open(os.path.join(TEST_DIR, tpl)) as f:
content = f.read()

View File

@ -20,10 +20,10 @@ setup(
author='tzangms',
author_email='tzangms@gmail.com',
url='http://github.com/tzangms/django-bootstrap-form',
license='BSD',
license='MIT',
test_suite='runtests.runtests',
install_requires = [
"django>=1.3",
"django>=1.5",
],
packages=find_packages(),
include_package_data=True,

22
tox.ini Normal file
View File

@ -0,0 +1,22 @@
[tox]
envlist = {py27,py34}-dj{15,16,17,18}
skipsdist=True
[testenv]
basepython =
py27: python2.7
py34: python3.4
deps =
pytest
dj15: django>=1.5,<1.6
dj16: django>=1.6,<1.7
dj17: django>=1.7,<1.8
dj18: django>=1.8,<1.9
commands = python setup.py test
[testenv:py27-cov]
deps =
dj18: Django>=1.8,<1.9
command = coverage run --source=bootstrapform setup.py test