Skip to content

Commit

Permalink
Add unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
tzangms committed Dec 8, 2013
1 parent 700f687 commit cd60795
Show file tree
Hide file tree
Showing 5 changed files with 322 additions and 0 deletions.
14 changes: 14 additions & 0 deletions .travis.yml
@@ -0,0 +1,14 @@
language: python

python:
- "2.7"

install:
- pip install -r requirements.txt --use-mirrors
- pip install coverage coveralls

script:
- coverage run --source=bootstrapform setup.py test

after_success:
- coveralls
4 changes: 4 additions & 0 deletions setup.py
Expand Up @@ -16,6 +16,10 @@
author_email='tzangms@gmail.com', author_email='tzangms@gmail.com',
url='http://github.com/tzangms/django-bootstrap-form', url='http://github.com/tzangms/django-bootstrap-form',
license='BSD', license='BSD',
test_suite='tests',
install_requires = [
"django>=1.3",
],
packages=find_packages(), packages=find_packages(),
include_package_data=True, include_package_data=True,
zip_safe=False, zip_safe=False,
Expand Down
54 changes: 54 additions & 0 deletions tests/__init__.py
@@ -0,0 +1,54 @@
import os
import sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'tests.test_settings'

parent = os.path.dirname(os.path.dirname(
os.path.abspath(__file__)))

sys.path.insert(0, parent)

from unittest import TestCase
from django.template import Template, Context
from django.core.management import call_command
from django import forms


TEST_DIR = os.path.abspath(os.path.join(__file__, '..'))


CHOICES = (
(0, 'Zero'),
(1, 'One'),
(2, 'Two'),
)

class ExampleForm(forms.Form):
char_field = forms.CharField()
choice_field = forms.ChoiceField(choices=CHOICES)
radio_choice = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect)
multiple_choice = forms.MultipleChoiceField(choices=CHOICES)
multiple_checkbox = forms.MultipleChoiceField(choices=CHOICES, widget=forms.CheckboxSelectMultiple)
file_fied = forms.FileField()
password_field = forms.CharField(widget=forms.PasswordInput)
textarea = forms.CharField(widget=forms.Textarea)
boolean_field = forms.BooleanField()


class BootstrapTemplateTagTests(TestCase):
def setUp(self):
call_command('syncdb', interactive=False)

def test_bootstrap_tag(self):
form = ExampleForm()

html = Template("{% load bootstrap %}{{ form|bootstrap }}").render(Context({'form': form}))

with open('/tmp/basic.html', 'w+') as f:
f.write(html)

image = os.path.join('fixtures', 'basic.html')
with open(os.path.join(TEST_DIR, image)) as f:
content = f.read()

self.assertEqual(html, content)
210 changes: 210 additions & 0 deletions tests/fixtures/basic.html
@@ -0,0 +1,210 @@







<div class="form-group">


<label class="control-label " for="id_char_field">Char field</label>


<div class=" ">
<input id="id_char_field" type="text" class=" form-control" name="char_field" />




</div>

</div>




<div class="form-group">


<label class="control-label " for="id_choice_field">Choice field</label>


<div class=" ">
<select id="id_choice_field" class=" form-control" 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 type="radio" name="radio_choice" value="0" />
Zero
</label>
</div>

<div class="radio">
<label>
<input type="radio" name="radio_choice" value="1" />
One
</label>
</div>

<div class="radio">
<label>
<input type="radio" name="radio_choice" 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" id="id_multiple_choice" class=" form-control" 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 type="checkbox" name="multiple_checkbox" value="0" id="id_multiple_checkbox_0" /> Zero</label></li>
<li><label for="id_multiple_checkbox_1"><input type="checkbox" name="multiple_checkbox" value="1" id="id_multiple_checkbox_1" /> One</label></li>
<li><label for="id_multiple_checkbox_2"><input type="checkbox" name="multiple_checkbox" value="2" id="id_multiple_checkbox_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 type="file" name="file_fied" id="id_file_fied" />




</div>

</div>




<div class="form-group">


<label class="control-label " for="id_password_field">Password field</label>


<div class=" ">
<input id="id_password_field" type="password" class=" form-control" name="password_field" />




</div>

</div>




<div class="form-group">


<label class="control-label " for="id_textarea">Textarea</label>


<div class=" ">
<textarea id="id_textarea" rows="10" cols="40" name="textarea" class=" form-control"></textarea>




</div>

</div>




<div class="form-group">

<div class="">
<div class="checkbox">

<label >
<input type="checkbox" name="boolean_field" id="id_boolean_field" /> <span>Boolean field</span>
</label>




</div>
</div>

</div>



40 changes: 40 additions & 0 deletions tests/test_settings.py
@@ -0,0 +1,40 @@
import os
local_path = lambda path: os.path.join(os.path.dirname(__file__), path)

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:'
}
}

SITE_ID = 1

INSTALLED_APPS = [
'django.contrib.contenttypes',
'django.contrib.sites',
'django.contrib.sessions',
'django.contrib.staticfiles',
'django.contrib.auth',
'django.contrib.admin',
'bootstrapform',
]

ROOT_URLCONF = 'tests.urls'

MEDIA_URL = '/media/'

MEDIA_ROOT = local_path('media')

STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'
STATIC_ROOT = local_path('static/')
STATIC_URL = '/static/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder'
)

TEMPLATE_DIRS = (
local_path('templates'),
)

0 comments on commit cd60795

Please sign in to comment.