Skip to content

Commit 98bebdf

Browse files
author
Richard Jones
committed
merge from HEAD
1 parent cfa9ad9 commit 98bebdf

File tree

6 files changed

+269
-253
lines changed

6 files changed

+269
-253
lines changed

CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Fixed:
88
- allow list of values for id, Number and Boolean filtering in anydbm
99
backend
1010
- fixed some more mysql 0.6->0.7 upgrade bugs (sf bug 950410)
11+
- fixed Boolean values in postgresql (sf bugs 972546 and 972600)
12+
- fixed -g arg to roundup-server (sf bug 973946)
1113

1214

1315
2004-06-10 0.7.4

roundup/backends/rdbms_common.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# $Id: rdbms_common.py,v 1.98.2.8 2004-06-09 09:48:49 richard Exp $
1+
# $Id: rdbms_common.py,v 1.98.2.9 2004-06-21 04:34:57 richard Exp $
22
''' Relational database (SQL) backend common code.
33
44
Basics:
@@ -53,6 +53,12 @@ def _num_cvt(num):
5353
except:
5454
return float(num)
5555

56+
def _bool_cvt(value):
57+
if value in ('TRUE', 'FALSE'):
58+
return {'TRUE': 1, 'FALSE': 0}[value]
59+
# assume it's a number returned from the db API
60+
return int(value)
61+
5662
class Database(FileStorage, hyperdb.Database, roundupdb.Database):
5763
''' Wrapper around an SQL database that presents a hyperdb interface.
5864
@@ -736,7 +742,7 @@ def addnode(self, classname, nodeid, node):
736742

737743
prop = props[col[1:]]
738744
value = values[col[1:]]
739-
if value:
745+
if value is not None:
740746
value = self.hyperdb_to_sql_value[prop.__class__](value)
741747
vals.append(value)
742748
vals.append(nodeid)
@@ -876,7 +882,7 @@ def setnode(self, classname, nodeid, values, multilink_changes={}):
876882
hyperdb.Link : str,
877883
hyperdb.Interval : date.Interval,
878884
hyperdb.Password : lambda x: password.Password(encrypted=x),
879-
hyperdb.Boolean : int,
885+
hyperdb.Boolean : _bool_cvt,
880886
hyperdb.Number : _num_cvt,
881887
hyperdb.Multilink : lambda x: x, # used in journal marshalling
882888
}

roundup/scripts/roundup_server.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
"""Command-line script that runs a server over roundup.cgi.client.
1919
20-
$Id: roundup_server.py,v 1.46.2.2 2004-05-12 22:31:37 richard Exp $
20+
$Id: roundup_server.py,v 1.46.2.3 2004-06-21 04:34:58 richard Exp $
2121
"""
2222
__docformat__ = 'restructuredtext'
2323

@@ -477,19 +477,19 @@ def run(port=PORT, success_message=None):
477477
_("Unable to bind to port %s, port already in use." % port)
478478
raise
479479

480-
if group is not None and hasattr(os, 'getgid'):
480+
if group is not None and hasattr(os, 'getuid'):
481481
# if root, setgid to the running user
482-
if not os.getgid() and user is not None:
482+
if not os.getuid():
483483
try:
484-
import pwd
484+
import grp
485485
except ImportError:
486-
raise ValueError, _("Can't change groups - no pwd module")
486+
raise ValueError, _("Can't change groups - no grp module")
487487
try:
488-
gid = pwd.getpwnam(user)[3]
488+
gid = grp.getgrnam(group)[2]
489489
except KeyError:
490490
raise ValueError,_("Group %(group)s doesn't exist")%locals()
491491
os.setgid(gid)
492-
elif os.getgid() and user is not None:
492+
elif os.getuid():
493493
print _('WARNING: ignoring "-g" argument, not root')
494494

495495
if hasattr(os, 'getuid'):

test/db_test_base.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
1616
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
1717
#
18-
# $Id: db_test_base.py,v 1.27.2.4 2004-06-13 01:08:06 richard Exp $
18+
# $Id: db_test_base.py,v 1.27.2.5 2004-06-21 04:34:58 richard Exp $
1919

2020
import unittest, os, shutil, errno, imp, sys, time, pprint
2121

@@ -263,11 +263,19 @@ def testIntervalUnset(self):
263263
self.assertEqual(self.db.issue.get(nid, "foo"), None)
264264

265265
# Boolean
266+
def testBooleanSet(self):
267+
nid = self.db.user.create(username='one', assignable=1)
268+
self.assertEqual(self.db.user.get(nid, "assignable"), 1)
269+
nid = self.db.user.create(username='two', assignable=0)
270+
self.assertEqual(self.db.user.get(nid, "assignable"), 0)
271+
266272
def testBooleanChange(self):
267273
userid = self.db.user.create(username='foo', assignable=1)
268274
self.assertEqual(1, self.db.user.get(userid, 'assignable'))
269275
self.db.user.set(userid, assignable=0)
270276
self.assertEqual(self.db.user.get(userid, 'assignable'), 0)
277+
self.db.user.set(userid, assignable=1)
278+
self.assertEqual(self.db.user.get(userid, 'assignable'), 1)
271279

272280
def testBooleanUnset(self):
273281
nid = self.db.user.create(username='foo', assignable=1)

0 commit comments

Comments
 (0)