[Repoze-checkins] r1251 - repoze.monty/trunk/repoze/monty

Chris McDonough chrism at agendaless.com
Tue Jul 8 19:11:42 EDT 2008


Author: Chris McDonough <chrism at agendaless.com>
Date: Tue Jul  8 19:11:42 2008
New Revision: 1251

Log:
Write tests.


Modified:
   repoze.monty/trunk/repoze/monty/__init__.py
   repoze.monty/trunk/repoze/monty/tests.py

Modified: repoze.monty/trunk/repoze/monty/__init__.py
==============================================================================
--- repoze.monty/trunk/repoze/monty/__init__.py	(original)
+++ repoze.monty/trunk/repoze/monty/__init__.py	Tue Jul  8 19:11:42 2008
@@ -78,8 +78,6 @@
 ArrayTypes = (list, tuple)
 
 def field2string(v):
-    if hasattr(v, 'read'):
-        return v.read()
     return str(v)
 
 def field2text(v, nl=newlines):

Modified: repoze.monty/trunk/repoze/monty/tests.py
==============================================================================
--- repoze.monty/trunk/repoze/monty/tests.py	(original)
+++ repoze.monty/trunk/repoze/monty/tests.py	Tue Jul  8 19:11:42 2008
@@ -23,19 +23,159 @@
         env.update(kw)
         return env
 
-    def test_multipart_form_POST_noconvert(self):
-        fields = [('login', 'login'),
-                  ('password', 'password')]
+    def _makeMultipartEnviron(self, fields):
         ct, body = encode_multipart_formdata(fields)
         from StringIO import StringIO
         kw = dict(CONTENT_TYPE=ct, REQUEST_METHOD='POST')
         kw['wsgi.input'] = StringIO(body)
         environ = self._makeEnviron(kw)
+        return environ
+
+    def test_multipart_form_POST_noconvert(self):
+        fields = [('login', 'login'),
+                  ('password', 'password')]
+        environ = self._makeMultipartEnviron(fields)
         f = self._getFUT()
         result = f(environ)
         self.assertEqual(result['login'], u'login')
         self.assertEqual(result['password'], u'password')
-    
+
+    def test_multipart_form_POST_floatconvert_succeed(self):
+        fields = [('myval:float', '1.0')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], 1.0)
+        
+    def test_multipart_form_POST_floatconvert_fail(self):
+        fields = [('myval:float', 'None')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        self.assertRaises(ValueError, f, environ)
+
+    def test_multipart_form_POST_intconvert_succeed(self):
+        fields = [('myval:int', '1')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], 1)
+        
+    def test_multipart_form_POST_intconvert_fail(self):
+        fields = [('myval:int', 'None')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        self.assertRaises(ValueError, f, environ)
+
+    def test_multipart_form_POST_listconvert_succeed(self):
+        fields = [('myval:list', '1'), ('myval:list', '2')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], ['1', '2'])
+
+    def test_multipart_form_POST_tupleconvert_succeed(self):
+        fields = [('myval:tuple', '1'), ('myval:tuple', '2')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], ('1', '2'))
+        
+    def test_multipart_form_POST_longconvert_succeed(self):
+        import sys
+        fields = [('myval:long', str(sys.maxint+1))]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], sys.maxint +1 )
+        
+    def test_multipart_form_POST_longconvert_fail(self):
+        fields = [('myval:long', 'None')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        self.assertRaises(ValueError, f, environ)
+
+    def test_multipart_form_POST_stringconvert_succeed(self):
+        fields = [('myval:string', '1')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], '1')
+
+    def test_multipart_form_POST_requiredconvert_succeed(self):
+        fields = [('myval:required', '1')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], '1')
+
+    def test_multipart_form_POST_requiredconvert_fail(self):
+        fields = [('myval:required', '')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        self.assertRaises(ValueError, f, environ)
+
+    def test_multipart_form_POST_tokensconvert_succeed(self):
+        fields = [('myval:tokens', 'abc def')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], ['abc', 'def'])
+
+    def test_multipart_form_POST_linesconvert_succeed(self):
+        fields = [('myval:tokens', 'abc\ndef')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], ['abc', 'def'])
+
+    def test_multipart_form_POST_textconvert_succeed(self):
+        fields = [('myval:text', 'abc\r\ndef')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], 'abc\ndef')
+
+    def test_multipart_form_POST_boolconvert_succeed(self):
+        fields = [('myval:boolean', '1')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['myval'], True)
+
+    def test_multipart_form_POST_recordconvert_succeed(self):
+        fields = [('person.fname:record', 'chris'), ('person.lname:record','m')]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        self.assertEqual(result['person']['fname'], u'chris')
+        self.assertEqual(result['person']['lname'], u'm')
+
+    def test_multipart_form_POST_recordsconvert_succeed(self):
+        fields = [
+            ('people.fname:records', 'chris'), ('people.lname:records','m'),
+            ('people.fname:records', 'other'), ('people.lname:records','guy'),
+            ]
+        environ = self._makeMultipartEnviron(fields)
+        f = self._getFUT()
+        result = f(environ)
+        people = result['people']
+        self.assertEqual(len(people), 2)
+        chris = people[0]
+        self.assertEqual(chris['fname'], u'chris')
+        self.assertEqual(chris['lname'], u'm')
+        other = people[1]
+        self.assertEqual(other['fname'], u'other')
+        self.assertEqual(other['lname'], u'guy')
+
+    # needed tests: :ignore_empty,
+
+    # needed record tests: :default, :ignore_empty
+
+    # what happened to ":date" in z3?
+
+    # do we care about :action, :default_action?  what about :utext:utf8
+    # and so on?
+
 def encode_multipart_formdata(fields):
     BOUNDARY = '----------ThIs_Is_tHe_bouNdaRY_$'
     CRLF = '\r\n'


More information about the Repoze-checkins mailing list