Permalink
Browse files

Merge pull request #10 from tuxcanfly/master

Refactored the layout for tests
  • Loading branch information...
shabda committed Apr 3, 2013
2 parents 45fb92c + 605b2cc commit 47f946fc3da35a065344bbb8f1bc3e05fca235c0
@@ -5,4 +5,4 @@ python:
# command to install dependencies
install: "pip install -r requirements.txt --use-mirrors"
# command to run tests
script: python manage.py test parsley
script: ./runtests.py
No changes.

This file was deleted.

Oops, something went wrong.

This file was deleted.

Oops, something went wrong.

This file was deleted.

Oops, something went wrong.
@@ -1,5 +0,0 @@
#Django requires every app to have models.
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=100)
@@ -0,0 +1 @@
from .tests import *
@@ -1,5 +1,5 @@
from django import forms
from .decorators import parsleyfy
from parsley.decorators import parsleyfy
from .models import Student
@@ -74,4 +74,4 @@ class FormWithCustomChoices(forms.Form):
def __init__(self, *args, **kwargs):
super(FormWithCustomChoices, self).__init__(*args, **kwargs)
self.fields['state'] = forms.ChoiceField(
choices=get_state_choices())
choices=get_state_choices())
@@ -0,0 +1,5 @@
#Django requires every app to have models.
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=100)
@@ -1,10 +1,12 @@
from django.test import TestCase
from django import forms
from .forms import TextForm, TextForm2, FieldTypeForm, FormWithWidgets, \
StudentModelForm, FormWithCleanField, FormWithCustomInit, \
FormWithCustomChoices
from .decorators import parsleyfy
from parsley.decorators import parsleyfy
from .forms import (TextForm, TextForm2, FieldTypeForm, FormWithWidgets,
StudentModelForm, FormWithCleanField, FormWithCustomInit,
FormWithCustomChoices)
class CharFieldTest(TestCase):
def test_basic(self):
@@ -20,13 +22,15 @@ def test_basic(self):
self.assertEqual(form.fields["name"].widget.attrs, {"data-required": "true"})
self.assertEqual(form.fields["university"].widget.attrs, {})
class CharFieldDecoratedTest(TestCase):
def test_decorated(self):
"Tests that parsleyfy works as a class Decorator"
form = TextForm2()
self.assertEqual(form.fields["name"].widget.attrs, {"data-required": "true"})
self.assertEqual(form.fields["university"].widget.attrs, {})
class FieldTypeFormTest(TestCase):
def test_fields(self):
"Tests that parsleyfy adds data-required for things other than CharField"
@@ -37,6 +41,7 @@ def test_fields(self):
self.assertEqual(fields["email"].widget.attrs["data-required"], "true")
self.assertFalse("data-required" in fields["email2"].widget.attrs)
class DataTypeTest(TestCase):
def test_data_types(self):
"Test that different field types get correct data-type"
@@ -51,6 +56,7 @@ def test_data_types(self):
self.assertEqual(fields["income2"].widget.attrs["data-type"], "number")
self.assertEqual(fields["topnav"].widget.attrs["data-regexp"], "#[A-Fa-f0-9]{6}")
class LengthTest(TestCase):
def test_length(self):
form = FieldTypeForm()
@@ -71,13 +77,15 @@ def test_value(self):
self.assertEqual(num_attrs["data-min"], 10)
self.assertEqual(num_attrs["data-max"], 100)
class FormWithWidgetsTest(TestCase):
def test_widgets(self):
"Assert that @parsleyfy doesn't cloober existing attrs"
form = FormWithWidgets()
self.assertTrue(form.fields["description"].widget, forms.TextInput)
self.assertEqual("highlight", form.fields["blurb"].widget.attrs["class"])
class TestMetadata(TestCase):
def test_docstring(self):
form1 = TextForm()
@@ -104,7 +112,8 @@ def test_model_form(self):
def test_model_form_save(self):
form = StudentModelForm({"name": "Luke Skywalker"})
form.save()
form.save(commit=False)
class TestCustomInit(TestCase):
def test_custom_init(self):
@@ -117,6 +126,7 @@ def test_custom_choices(self):
self.assertEqual(form.fields['state'].choices,
[("NY", "NY"), ("OH", "OH")])
class TestCleanFields(TestCase):
def test_clean(self):
form = FormWithCleanField(data={"description": "foo"})
@@ -129,15 +139,3 @@ def test_clean_parslyfied(self):
self.assertEqual(form.is_bound, True)
self.assertEqual(form.is_valid(), False)
self.assertTrue(hasattr(form, "clean_description"))
File renamed without changes.
@@ -0,0 +1,43 @@
#!/usr/bin/env python
import sys
import os
from os.path import dirname, abspath
from optparse import OptionParser
from django.conf import settings
# For convenience configure settings if they are not pre-configured or if we
# haven't been provided settings to use by environment variable.
if not settings.configured and not os.environ.get('DJANGO_SETTINGS_MODULE'):
settings.configure(
DATABASES={
'default': {
'ENGINE': 'django.db.backends.sqlite3',
}
},
INSTALLED_APPS=[
'parsley',
],
)
from django.test.simple import DjangoTestSuiteRunner
def runtests(*test_args, **kwargs):
if not test_args:
test_args = ['parsley']
parent = dirname(abspath(__file__))
sys.path.insert(0, parent)
test_runner = DjangoTestSuiteRunner(
verbosity=kwargs.get('verbosity', 1),
interactive=kwargs.get('interactive', False),
failfast=kwargs.get('failfast'))
failures = test_runner.run_tests(test_args)
sys.exit(failures)
if __name__ == '__main__':
parser = OptionParser()
parser.add_option('--failfast', action='store_true', default=False, dest='failfast')
(options, args) = parser.parse_args()
runtests(failfast=options.failfast, *args)

0 comments on commit 47f946f

Please sign in to comment.