[issue400608] just testing
Daniel Diniz
report at bugs.python.org
Fri Mar 6 05:52:56 CET 2009
Daniel Diniz <ajaksu at gmail.com> added the comment:
Reviewers: ,
Message:
While this is a test issue, the attached diff is a crude first draft of
a patched upload.py that makes linking to the Python Tracker a bit
easier.
Here's the command line and output:
$ python static/upload.py -R 400608 -F msg32813
Upload server: [...]
Loaded authentication cookies [...]
Issue created. URL: http://codereview.appspot.com/25073
Uploading base file for static/upload.py
And the help is:
$ python static/upload.py -h | tail -n5
Link options:
-R ROUNDUP, --roundup=ROUNDUP
Python tracker issue number to link with.
-F FETCHDESCR, --fetch_descr=FETCHDESCR
Tracker file or message to fetch description
from.
I like it :)
Description:
wish we could expunge the deleted ones
Please review this at http://codereview.appspot.com/25073
Affected files:
M static/upload.py
Index: static/upload.py
===================================================================
--- static/upload.py (revision 402)
+++ static/upload.py (working copy)
@@ -61,7 +61,31 @@
# Max size of patch or base file.
MAX_UPLOAD_SIZE = 900 * 1024
+fields = {'issue':'title', 'msg':'content', 'file':'description', }
+def fetch_item(nodeid, kind='issue', tracker='http://bugs.python.org'):
+ query_tpl = [('@action', 'export_csv'), ('@filter', 'id'),
+ ('id', nodeid), ('@columns', fields[kind])]
+ item_url = '/%s?%s' % (kind, urllib.urlencode(query_tpl))
+ content = urllib.urlopen(tracker + item_url).read().split('\r\n')
+ if content[0] == 'title':
+ return '[issue%s] %s' % (nodeid, content[1].strip())
+ elif content[0] == 'content' or content[0] == 'description':
+ return content[1].strip()
+def fetch(nodeid):
+ try:
+ result = fetch_item(int(nodeid))
+ except ValueError:
+ if nodeid.startswith('msg'):
+ nodeid = nodeid.replace('msg', '')
+ result = fetch_item(int(nodeid), 'msg')
+ elif nodeid.startswith('file'):
+ nodeid = nodeid.replace('file', '')
+ result = fetch_item(int(nodeid), 'file')
+ else:
+ raise
+ return result
+
def GetEmail(prompt):
"""Prompts the user for their email address and returns it.
@@ -453,6 +477,14 @@
group.add_option("--send_mail", action="store_true",
dest="send_mail", default=False,
help="Send notification email to reviewers.")
+# Link options
+group = parser.add_option_group("Link options")
+group.add_option("-R", "--roundup", action="store", dest="roundup",
+ metavar="ROUNDUP", default=None,
+ help="Python tracker issue number to link with.")
+group.add_option("-F", "--fetch_descr", action="store", dest="fetch_descr",
+ metavar="FETCHDESCR", default=None,
+ help="Tracker file or message to fetch description from.")
def GetRpcServer(options):
@@ -1291,7 +1323,10 @@
prompt = "Message describing this patch set: "
else:
prompt = "New issue subject: "
- message = options.message or raw_input(prompt).strip()
+ if options.roundup:
+ message = fetch(options.roundup)
+ else:
+ message = options.message or raw_input(prompt).strip()
if not message:
ErrorExit("A non-empty message is required")
rpc_server = GetRpcServer(options)
@@ -1307,11 +1342,16 @@
if "@" in reviewer and not reviewer.split("@")[1].count(".") == 1:
ErrorExit("Invalid email address: %s" % reviewer)
form_fields.append(("reviewers", options.reviewers))
+ tracker_email = 'report at bugs.python.org,'
if options.cc:
for cc in options.cc.split(','):
if "@" in cc and not cc.split("@")[1].count(".") == 1:
ErrorExit("Invalid email address: %s" % cc)
- form_fields.append(("cc", options.cc))
+ if options.roundup:
+ cc = tracker_email + options.cc
+ form_fields.append(("cc", cc))
+ elif options.roundup:
+ form_fields.append(("cc", tracker_email[:-1]))
description = options.description
if options.description_file:
if options.description:
@@ -1319,6 +1359,9 @@
file = open(options.description_file, 'r')
description = file.read()
file.close()
+ elif options.fetch_descr:
+ # XXX Add error handling as above
+ description = fetch(options.fetch_descr)
if description:
form_fields.append(("description", description))
# Send a hash of all the base file so the server can determine if a copy
----------
nosy: +ajaksu2
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue400608>
_______________________________________
More information about the Python-bugs-list
mailing list