thirdparty/google_appengine/lib/django/tests/regressiontests/httpwrappers/tests.py
author Lennard de Rijk <ljvderijk@gmail.com>
Mon, 16 Feb 2009 20:38:35 +0000
changeset 1364 b2709805fafe
parent 109 620f9b141567
permissions -rwxr-xr-x
Update org bulk accept script. The script now: 1) leaves correctly control to the browser to update the GUI of the progress bar during ajax communication. 2) Displays an error if something went wrong (I've tried in my box stopping the server while doing the requests), and show a retry button to fetch again the list of the applications that are still not accepted and iterate over them again (seems to recover correctly restarting the server after the error in my box) 3) doesn't display any text at the beginning, and the button has the correct CSS class assigned 4) Check if there are applications to accept, if not displays a message stating that there are no orgs to accept. Patch by: Mario Ferraro Reviewed by: Lennard de Rijk

"""
###################
# Empty QueryDict #
###################

>>> q = QueryDict('')

>>> q['foo']
Traceback (most recent call last):
...
MultiValueDictKeyError: "Key 'foo' not found in <MultiValueDict: {}>"

>>> q['something'] = 'bar'
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.get('foo', 'default')
'default'

>>> q.getlist('foo')
[]

>>> q.setlist('foo', ['bar', 'baz'])
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.appendlist('foo', ['bar'])
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.has_key('foo')
False

>>> q.items()
[]

>>> q.lists()
[]

>>> q.keys()
[]

>>> q.values()
[]

>>> len(q)
0

>>> q.update({'foo': 'bar'})
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.pop('foo')
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.popitem()
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.clear()
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.setdefault('foo', 'bar')
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.urlencode()
''

###################################
# Mutable copy of empty QueryDict #
###################################

>>> q = q.copy()

>>> q['foo']
Traceback (most recent call last):
...
MultiValueDictKeyError: "Key 'foo' not found in <MultiValueDict: {}>"

>>> q['name'] = 'john'

>>> q['name']
'john'

>>> q.get('foo', 'default')
'default'

>>> q.get('name', 'default')
'john'

>>> q.getlist('name')
['john']

>>> q.getlist('foo')
[]

>>> q.setlist('foo', ['bar', 'baz'])

>>> q.get('foo', 'default')
'baz'

>>> q.getlist('foo')
['bar', 'baz']

>>> q.appendlist('foo', 'another')

>>> q.getlist('foo')
['bar', 'baz', 'another']

>>> q['foo']
'another'

>>> q.has_key('foo')
True

>>> q.items()
[('foo', 'another'), ('name', 'john')]

>>> q.lists()
[('foo', ['bar', 'baz', 'another']), ('name', ['john'])]

>>> q.keys()
['foo', 'name']

>>> q.values()
['another', 'john']

>>> len(q)
2

>>> q.update({'foo': 'hello'})

# Displays last value
>>> q['foo']
'hello'

>>> q.get('foo', 'not available')
'hello'

>>> q.getlist('foo')
['bar', 'baz', 'another', 'hello']

>>> q.pop('foo')
['bar', 'baz', 'another', 'hello']

>>> q.get('foo', 'not there')
'not there'

>>> q.setdefault('foo', 'bar')
'bar'

>>> q['foo']
'bar'

>>> q.getlist('foo')
['bar']

>>> q.urlencode()
'foo=bar&name=john'

>>> q.clear()

>>> len(q)
0

#####################################
# QueryDict with one key/value pair #
#####################################

>>> q = QueryDict('foo=bar')

>>> q['foo']
'bar'

>>> q['bar']
Traceback (most recent call last):
...
MultiValueDictKeyError: "Key 'bar' not found in <MultiValueDict: {'foo': ['bar']}>"

>>> q['something'] = 'bar'
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.get('foo', 'default')
'bar'

>>> q.get('bar', 'default')
'default'

>>> q.getlist('foo')
['bar']

>>> q.getlist('bar')
[]

>>> q.setlist('foo', ['bar', 'baz'])
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.appendlist('foo', ['bar'])
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.has_key('foo')
True

>>> q.has_key('bar')
False

>>> q.items()
[('foo', 'bar')]

>>> q.lists()
[('foo', ['bar'])]

>>> q.keys()
['foo']

>>> q.values()
['bar']

>>> len(q)
1

>>> q.update({'foo': 'bar'})
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.pop('foo')
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.popitem()
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.clear()
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.setdefault('foo', 'bar')
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.urlencode()
'foo=bar'

#####################################################
# QueryDict with two key/value pairs with same keys #
#####################################################

>>> q = QueryDict('vote=yes&vote=no')

>>> q['vote']
'no'

>>> q['something'] = 'bar'
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.get('vote', 'default')
'no'

>>> q.get('foo', 'default')
'default'

>>> q.getlist('vote')
['yes', 'no']

>>> q.getlist('foo')
[]

>>> q.setlist('foo', ['bar', 'baz'])
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.appendlist('foo', ['bar'])
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.has_key('vote')
True

>>> q.has_key('foo')
False

>>> q.items()
[('vote', 'no')]

>>> q.lists()
[('vote', ['yes', 'no'])]

>>> q.keys()
['vote']

>>> q.values()
['no']

>>> len(q)
1

>>> q.update({'foo': 'bar'})
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.pop('foo')
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.popitem()
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.clear()
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.setdefault('foo', 'bar')
Traceback (most recent call last):
...
AttributeError: This QueryDict instance is immutable

>>> q.urlencode()
'vote=yes&vote=no'

"""

from django.http import QueryDict

if __name__ == "__main__":
    import doctest
    doctest.testmod()