~ubuntu-branches/ubuntu/saucy/python-django/saucy-updates

« back to all changes in this revision

Viewing changes to django/contrib/formtools/tests/wizard/forms.py

  • Committer: Package Import Robot
  • Author(s): Luke Faraone, Jakub Wilk, Luke Faraone
  • Date: 2013-05-09 15:10:47 UTC
  • mfrom: (1.1.21) (4.4.27 sid)
  • Revision ID: package-import@ubuntu.com-20130509151047-aqv8d71oj9wvcv8c
Tags: 1.5.1-2
[ Jakub Wilk ]
* Use canonical URIs for Vcs-* fields.

[ Luke Faraone ]
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from __future__ import unicode_literals
 
2
 
1
3
from django import forms, http
2
4
from django.conf import settings
 
5
from django.db import models
3
6
from django.test import TestCase
4
7
from django.template.response import TemplateResponse
5
8
from django.utils.importlib import import_module
27
30
    request.session = engine.SessionStore(None)
28
31
    return request
29
32
 
 
33
 
30
34
class Step1(forms.Form):
31
35
    name = forms.CharField()
32
36
 
 
37
 
33
38
class Step2(forms.Form):
34
39
    name = forms.CharField()
35
40
 
 
41
 
36
42
class Step3(forms.Form):
37
43
    data = forms.CharField()
38
44
 
 
45
 
39
46
class CustomKwargsStep1(Step1):
40
47
 
41
48
    def __init__(self, test=None, *args, **kwargs):
42
49
        self.test = test
43
50
        return super(CustomKwargsStep1, self).__init__(*args, **kwargs)
44
51
 
45
 
class UserForm(forms.ModelForm):
46
 
    class Meta:
47
 
        model = User
48
 
 
49
 
UserFormSet = forms.models.modelformset_factory(User, form=UserForm, extra=2)
 
52
 
 
53
class TestModel(models.Model):
 
54
    name = models.CharField(max_length=100)
 
55
 
 
56
    class Meta:
 
57
        app_label = 'formtools'
 
58
 
 
59
 
 
60
class TestModelForm(forms.ModelForm):
 
61
    class Meta:
 
62
        model = TestModel
 
63
 
 
64
 
 
65
TestModelFormSet = forms.models.modelformset_factory(TestModel, form=TestModelForm, extra=2)
 
66
 
50
67
 
51
68
class TestWizard(WizardView):
52
69
    storage_name = 'django.contrib.formtools.wizard.storage.session.SessionStorage'
64
81
class FormTests(TestCase):
65
82
    def test_form_init(self):
66
83
        testform = TestWizard.get_initkwargs([Step1, Step2])
67
 
        self.assertEqual(testform['form_list'], {u'0': Step1, u'1': Step2})
 
84
        self.assertEqual(testform['form_list'], {'0': Step1, '1': Step2})
68
85
 
69
86
        testform = TestWizard.get_initkwargs([('start', Step1), ('step2', Step2)])
70
87
        self.assertEqual(
71
 
            testform['form_list'], {u'start': Step1, u'step2': Step2})
 
88
            testform['form_list'], {'start': Step1, 'step2': Step2})
72
89
 
73
90
        testform = TestWizard.get_initkwargs([Step1, Step2, ('finish', Step3)])
74
91
        self.assertEqual(
75
 
            testform['form_list'], {u'0': Step1, u'1': Step2, u'finish': Step3})
 
92
            testform['form_list'], {'0': Step1, '1': Step2, 'finish': Step3})
76
93
 
77
94
    def test_first_step(self):
78
95
        request = get_request()
79
96
 
80
97
        testform = TestWizard.as_view([Step1, Step2])
81
98
        response, instance = testform(request)
82
 
        self.assertEqual(instance.steps.current, u'0')
 
99
        self.assertEqual(instance.steps.current, '0')
83
100
 
84
101
        testform = TestWizard.as_view([('start', Step1), ('step2', Step2)])
85
102
        response, instance = testform(request)
147
164
 
148
165
    def test_form_instance(self):
149
166
        request = get_request()
150
 
        the_instance = User()
151
 
        testform = TestWizard.as_view([('start', UserForm), ('step2', Step2)],
 
167
        the_instance = TestModel()
 
168
        testform = TestWizard.as_view([('start', TestModelForm), ('step2', Step2)],
152
169
            instance_dict={'start': the_instance})
153
170
        response, instance = testform(request)
154
171
 
161
178
 
162
179
    def test_formset_instance(self):
163
180
        request = get_request()
164
 
        the_instance1, created = User.objects.get_or_create(
165
 
            username='testuser1')
166
 
        the_instance2, created = User.objects.get_or_create(
167
 
            username='testuser2')
168
 
        testform = TestWizard.as_view([('start', UserFormSet), ('step2', Step2)],
169
 
            instance_dict={'start': User.objects.filter(username='testuser1')})
 
181
        the_instance1, created = TestModel.objects.get_or_create(
 
182
            name='test object 1')
 
183
        the_instance2, created = TestModel.objects.get_or_create(
 
184
            name='test object 2')
 
185
        testform = TestWizard.as_view([('start', TestModelFormSet), ('step2', Step2)],
 
186
            instance_dict={'start': TestModel.objects.filter(name='test object 1')})
170
187
        response, instance = testform(request)
171
188
 
172
189
        self.assertEqual(list(instance.get_form_instance('start')), [the_instance1])