Mercurial > p > roundup > code
comparison test/test_cgi.py @ 1381:944bd3c6d365
more cgi form parsing tests, and a fix for an outstanding couple of bugs
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 15 Jan 2003 11:07:45 +0000 |
| parents | 4ce6820c18fa |
| children | 87143c3d7156 |
comparison
equal
deleted
inserted
replaced
| 1380:4ce6820c18fa | 1381:944bd3c6d365 |
|---|---|
| 6 # | 6 # |
| 7 # This module is distributed in the hope that it will be useful, | 7 # This module is distributed in the hope that it will be useful, |
| 8 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 8 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| 10 # | 10 # |
| 11 # $Id: test_cgi.py,v 1.2 2003-01-14 22:21:35 richard Exp $ | 11 # $Id: test_cgi.py,v 1.3 2003-01-15 11:07:45 richard Exp $ |
| 12 | 12 |
| 13 import unittest, os, shutil, errno, sys, difflib, cgi | 13 import unittest, os, shutil, errno, sys, difflib, cgi |
| 14 | 14 |
| 15 from roundup.cgi import client | 15 from roundup.cgi import client |
| 16 from roundup import init, instance, password | 16 from roundup import init, instance, password |
| 68 def testEmptyString(self): | 68 def testEmptyString(self): |
| 69 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | 69 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, |
| 70 makeForm({'title': ''})), {}) | 70 makeForm({'title': ''})), {}) |
| 71 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | 71 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, |
| 72 makeForm({'title': ' '})), {}) | 72 makeForm({'title': ' '})), {}) |
| 73 self.assertRaises(ValueError, client.parsePropsFromForm, self.db, | |
| 74 self.db.issue, makeForm({'title': ['', '']})) | |
| 73 | 75 |
| 74 def testSetString(self): | 76 def testSetString(self): |
| 75 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | 77 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, |
| 76 makeForm({'title': 'foo'})), {'title': 'foo'}) | 78 makeForm({'title': 'foo'})), {'title': 'foo'}) |
| 77 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | 79 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, |
| 96 | 98 |
| 97 def testSetMultilink(self): | 99 def testSetMultilink(self): |
| 98 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | 100 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, |
| 99 makeForm({'nosy': '1'})), {'nosy': ['1']}) | 101 makeForm({'nosy': '1'})), {'nosy': ['1']}) |
| 100 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | 102 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, |
| 103 makeForm({'nosy': 'admin'})), {'nosy': ['1']}) | |
| 104 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 101 makeForm({'nosy': ['1','2']})), {'nosy': ['1','2']}) | 105 makeForm({'nosy': ['1','2']})), {'nosy': ['1','2']}) |
| 102 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | 106 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, |
| 103 makeForm({'nosy': '1,2'})), {'nosy': ['1','2']}) | 107 makeForm({'nosy': '1,2'})), {'nosy': ['1','2']}) |
| 108 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 109 makeForm({'nosy': 'admin,2'})), {'nosy': ['1','2']}) | |
| 104 | 110 |
| 105 def testEmptyMultilinkSet(self): | 111 def testEmptyMultilinkSet(self): |
| 106 nodeid = self.db.issue.create(nosy=['1','2']) | 112 nodeid = self.db.issue.create(nosy=['1','2']) |
| 107 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | 113 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, |
| 108 makeForm({'nosy': ''}), nodeid), {'nosy': []}) | 114 makeForm({'nosy': ''}), nodeid), {'nosy': []}) |
| 109 nodeid = self.db.issue.create(nosy=['1','2']) | 115 nodeid = self.db.issue.create(nosy=['1','2']) |
| 110 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | 116 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, |
| 111 makeForm({'nosy': ' '}), nodeid), {'nosy': []}) | 117 makeForm({'nosy': ' '}), nodeid), {'nosy': []}) |
| 112 | 118 |
| 119 def testInvalidMultilinkValue(self): | |
| 120 # XXX This is not the current behaviour - should we enforce this? | |
| 121 # self.assertRaises(IndexError, client.parsePropsFromForm, self.db, | |
| 122 # self.db.issue, makeForm({'nosy': '4'})) | |
| 123 self.assertRaises(ValueError, client.parsePropsFromForm, self.db, | |
| 124 self.db.issue, makeForm({'nosy': 'frozzle'})) | |
| 125 self.assertRaises(ValueError, client.parsePropsFromForm, self.db, | |
| 126 self.db.issue, makeForm({'nosy': '1,frozzle'})) | |
| 127 # XXX need a test for the TypeError (where the ML class doesn't define a key | |
| 128 | |
| 129 def testMultilinkAdd(self): | |
| 130 nodeid = self.db.issue.create(nosy=['1']) | |
| 131 # do nothing | |
| 132 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 133 makeForm({':add:nosy': ''}), nodeid), {}) | |
| 134 | |
| 135 # do something ;) | |
| 136 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 137 makeForm({':add:nosy': '2'}), nodeid), {'nosy': ['1','2']}) | |
| 138 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 139 makeForm({':add:nosy': '2,mary'}), nodeid), {'nosy': ['1','2','4']}) | |
| 140 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 141 makeForm({':add:nosy': ['2','3']}), nodeid), {'nosy': ['1','2','3']}) | |
| 142 | |
| 143 def testMultilinkRemove(self): | |
| 144 nodeid = self.db.issue.create(nosy=['1','2']) | |
| 145 # do nothing | |
| 146 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 147 makeForm({':remove:nosy': ''}), nodeid), {}) | |
| 148 | |
| 149 # do something ;) | |
| 150 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 151 makeForm({':remove:nosy': '1'}), nodeid), {'nosy': ['2']}) | |
| 152 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 153 makeForm({':remove:nosy': 'admin,2'}), nodeid), {'nosy': []}) | |
| 154 self.assertEqual(client.parsePropsFromForm(self.db, self.db.issue, | |
| 155 makeForm({':remove:nosy': ['1','2']}), nodeid), {'nosy': []}) | |
| 156 | |
| 157 # remove one that doesn't exist? | |
| 158 self.assertRaises(ValueError, client.parsePropsFromForm, self.db, | |
| 159 self.db.issue, makeForm({':remove:nosy': '4'}), nodeid) | |
| 160 | |
| 113 # | 161 # |
| 114 # Password | 162 # Password |
| 115 # | 163 # |
| 116 def testEmptyPassword(self): | 164 def testEmptyPassword(self): |
| 117 self.assertEqual(client.parsePropsFromForm(self.db, self.db.user, | 165 self.assertEqual(client.parsePropsFromForm(self.db, self.db.user, |
| 118 makeForm({'password': ''})), {}) | 166 makeForm({'password': ''})), {}) |
| 119 self.assertEqual(client.parsePropsFromForm(self.db, self.db.user, | 167 self.assertEqual(client.parsePropsFromForm(self.db, self.db.user, |
| 120 makeForm({'password': ''})), {}) | 168 makeForm({'password': ''})), {}) |
| 169 self.assertRaises(ValueError, client.parsePropsFromForm, self.db, | |
| 170 self.db.user, makeForm({'password': ['', '']})) | |
| 171 self.assertRaises(ValueError, client.parsePropsFromForm, self.db, | |
| 172 self.db.user, makeForm({'password': 'foo', | |
| 173 'password:confirm': ['', '']})) | |
| 121 | 174 |
| 122 def testSetPassword(self): | 175 def testSetPassword(self): |
| 123 self.assertEqual(client.parsePropsFromForm(self.db, self.db.user, | 176 self.assertEqual(client.parsePropsFromForm(self.db, self.db.user, |
| 124 makeForm({'password': 'foo', 'password:confirm': 'foo'})), | 177 makeForm({'password': 'foo', 'password:confirm': 'foo'})), |
| 125 {'password': 'foo'}) | 178 {'password': 'foo'}) |
