/usr/lib/python2.7/dist-packages/webunit/utility.py is in python-webunit 1:1.3.10-2.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #
# Copyright (c) 2003 Richard Jones (http://mechanicalcat.net/richard)
# Copyright (c) 2002 ekit.com Inc (http://www.ekit-inc.com/)
# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/)
#
# See the README for full license details.
#
# $Id$
import cStringIO
import os.path
class Upload:
'''Simple "sentinel" class that lets us identify file uploads in POST
data mappings.
'''
def __init__(self, filename):
self.filename = filename
def __cmp__(self, other):
return cmp(self.filename, other.filename)
boundary = '--------------GHSKFJDLGDS7543FJKLFHRE75642756743254'
sep_boundary = '\n--' + boundary
end_boundary = sep_boundary + '--'
def mimeEncode(data, sep_boundary=sep_boundary, end_boundary=end_boundary):
'''Take the mapping of data and construct the body of a
multipart/form-data message with it using the indicated boundaries.
'''
ret = cStringIO.StringIO()
for key, value in data.items():
if not key:
continue
# handle multiple entries for the same name
if type(value) != type([]): value = [value]
for value in value:
ret.write(sep_boundary)
# if key starts with a '$' then the entry is a file upload
if isinstance(value, Upload):
ret.write('\r\nContent-Disposition: form-data; name="%s"'%key)
ret.write('; filename="%s"\n\n'%value.filename)
if value.filename:
value = open(os.path.join(value.filename), "rb").read()
else:
value = ''
else:
ret.write('\r\nContent-Disposition: form-data; name="%s"'%key)
ret.write("\r\n\r\n")
ret.write(str(value))
if value and value[-1] == '\r':
ret.write('\n') # write an extra newline
ret.write(end_boundary)
return ret.getvalue()
def log(message, content, logfile='logfile'):
'''Log a single message to the indicated logfile
'''
logfile = open(logfile, 'a')
logfile.write('\n>>> %s\n'%message)
logfile.write(str(content) + '\n')
logfile.close()
#
# $Log$
# Revision 1.3 2003/08/23 02:01:59 richard
# fixes to cookie sending
#
# Revision 1.2 2003/07/22 01:19:22 richard
# patches
#
# Revision 1.1.1.1 2003/07/22 01:01:44 richard
#
#
# Revision 1.4 2002/02/25 02:59:09 rjones
# *** empty log message ***
#
# Revision 1.3 2002/02/22 06:24:31 rjones
# Code cleanup
#
# Revision 1.2 2002/02/13 01:16:56 rjones
# *** empty log message ***
#
#
# vim: set filetype=python ts=4 sw=4 et si
|