Mercurial > p > roundup > code
annotate scripts/add-issue @ 7211:506c86823abb
Add config argument to more password.Password invocations.
The work done to allow password_pbkdf2_default_rounds to be overridden
for testing requires that calls to password.Password include a config
argument.
This was needed because using the real value more than quadrupled
testing runtime.
However there are still a few places where config was not being set
when Password was called. I think this fixes all of the ones that are
called from a function that have access to a db.config object.
The remaining ones all call Password(encrypted=x). This results in
Password.unpack() being called. If x is not a propertly formatted
password string ("{scheme}...", it calls encodePassword. It then
should end up raising the ConfigNotSet exception. This is
probably what we want as it means the shape of "x" is not correct.
I don't understand why Password.unpack() attempts to encrypt the value
of encrypted if it doesn't match the right form. According to codecov,
this encryption branch is being used, so somewhere x is of the wrong
form. Hmmm....
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 04 Mar 2023 00:17:26 -0500 |
| parents | c75defc1c2f0 |
| children | 9c3ec0a5c7fc |
| rev | line source |
|---|---|
|
1626
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 ''' |
|
1627
e029d625c8f1
minor usage doc tweak
Richard Jones <richard@users.sourceforge.net>
parents:
1626
diff
changeset
|
3 Usage: %s <tracker home> <priority> <issue title> |
|
1626
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
4 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
5 Create a new issue in the given tracker. Input is taken from STDIN to |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
6 create the initial issue message (which may be empty). Issues will be |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
7 created as the current user (%s) if they exist as a Roundup |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
8 user, or "admin" otherwise. |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
9 ''' |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
10 |
|
5412
c75defc1c2f0
Python 3 preparation: miscellaneous Python scripts not named *.py.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
11 from __future__ import print_function |
|
1626
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
12 import sys, os, pwd |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
13 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
14 from roundup import instance, mailgw, date |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
15 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
16 # open the instance |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
17 username = pwd.getpwuid(os.getuid())[0] |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
18 if len(sys.argv) < 3: |
|
5412
c75defc1c2f0
Python 3 preparation: miscellaneous Python scripts not named *.py.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
19 print("Error: Not enough arguments") |
|
c75defc1c2f0
Python 3 preparation: miscellaneous Python scripts not named *.py.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4781
diff
changeset
|
20 print(__doc__.strip()%(sys.argv[0], username)) |
|
1626
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
21 sys.exit(1) |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
22 tracker_home = sys.argv[1] |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
23 issue_priority = sys.argv[2] |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
24 issue_title = ' '.join(sys.argv[3:]) |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
25 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
26 # get the message, if any |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
27 message_text = sys.stdin.read().strip() |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
28 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
29 # open the tracker |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
30 tracker = instance.open(tracker_home) |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
31 db = tracker.open('admin') |
| 4781 | 32 db.tx_Source = "cli" |
|
1626
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 uid = db.user.lookup('admin') |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
34 try: |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
35 # try to open the tracker as the current user |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 uid = db.user.lookup(username) |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 db.close() |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 db = tracker.open(username) |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
39 except KeyError: |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
40 pass |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
42 try: |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 # handle the message |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
45 messages = [] |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
46 if message_text: |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 summary, x = mailgw.parseContent(message_text, 0, 0) |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
48 msg = db.msg.create(content=message_text, summary=summary, author=uid, |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
49 date=date.Date()) |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
50 messages = [msg] |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
52 # now create the issue |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
53 db.issue.create(title=issue_title, priority=issue_priority, |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
54 messages=messages) |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
56 db.commit() |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
57 finally: |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
58 db.close() |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
59 |
|
581aa1853a2f
adding a simple add-issue script
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
60 # vim: set filetype=python ts=4 sw=4 et si |
