Skip to content

Commit 14d7c27

Browse files
committed
merge fork at head
2 parents 45cdd3b + 8ec7df8 commit 14d7c27

File tree

4 files changed

+55
-3
lines changed

4 files changed

+55
-3
lines changed

.travis.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ python:
77
- 3.6
88
- 3.7
99

10+
#I would like to build and test the maint-1.6 and trunk/default
11+
#but we need different environments for these:
12+
# maint-1.6 only python 2, install only psycopg2 version with support for
13+
# psycopg1
14+
branches:
15+
# only:
16+
# - default
17+
# - maint-1.6
18+
1019
dist:
1120
- xenial
1221

roundup/cgi/actions.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,9 @@ def handle(self):
558558
# nuke the existing value
559559
if isinstance(prop, hyperdb.Multilink):
560560
d[name] = []
561+
elif isinstance(prop, hyperdb.Password):
562+
# create empty password entry
563+
d[name] = password.Password("", config=self.db.config)
561564
else:
562565
d[name] = None
563566

test/test_cgi.py

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def setUp(self):
9494
intval=hyperdb.Integer(), boolean=hyperdb.Boolean(),
9595
link=hyperdb.Link('test'), multilink=hyperdb.Multilink('test'),
9696
date=hyperdb.Date(), messages=hyperdb.Multilink('msg'),
97-
interval=hyperdb.Interval())
97+
interval=hyperdb.Interval(), pw=hyperdb.Password() )
9898

9999
# compile the labels re
100100
classes = '|'.join(self.db.classes.keys())
@@ -1442,7 +1442,7 @@ def testSearchPermission(self):
14421442
h = HTMLRequest(cl)
14431443
self.assertEqual([x.id for x in h.batch()],['1', '2', '3'])
14441444

1445-
def testEditCSV(self):
1445+
def testEditCSVKeyword(self):
14461446
form = dict(rows='id,name\n1,newkey')
14471447
cl = self._make_client(form, userid='1', classname='keyword')
14481448
cl._ok_message = []
@@ -1458,6 +1458,46 @@ def testEditCSV(self):
14581458
k = self.db.keyword.getnode('1')
14591459
self.assertEqual(k.name, u2s(u'\xe4\xf6\xfc'))
14601460

1461+
def testEditCSVTest(self):
1462+
1463+
form = dict(rows='\nid,boolean,date,interval,intval,link,messages,multilink,number,pw,string\n1,true,2019-02-10,2d,4,,,,3.4,pass,foo\n2,no,2017-02-10,1d,-9,1,,1,-2.4,poof,bar\n3,no,2017-02-10,1d,-9,2,,1:2,-2.4,ping,bar')
1464+
cl = self._make_client(form, userid='1', classname='test')
1465+
cl._ok_message = []
1466+
actions.EditCSVAction(cl).handle()
1467+
self.assertEqual(cl._ok_message, ['Items edited OK'])
1468+
t = self.db.test.getnode('1')
1469+
self.assertEqual(t.string, 'foo')
1470+
self.assertEqual(t['string'], 'foo')
1471+
self.assertEqual(t.boolean, True)
1472+
t = self.db.test.getnode('3')
1473+
self.assertEqual(t.multilink, [ "1", "2" ])
1474+
1475+
# now edit existing row and delete row
1476+
form = dict(rows='\nid,boolean,date,interval,intval,link,messages,multilink,number,pw,string\n1,false,2019-03-10,1d,3,1,,1:2,2.2,pass,bar\n2,,,,,1,,1,,,bar')
1477+
cl = self._make_client(form, userid='1', classname='test')
1478+
cl._ok_message = []
1479+
actions.EditCSVAction(cl).handle()
1480+
self.assertEqual(cl._ok_message, ['Items edited OK'])
1481+
t = self.db.test.getnode('1')
1482+
self.assertEqual(t.string, 'bar')
1483+
self.assertEqual(t['string'], 'bar')
1484+
self.assertEqual(t.boolean, False)
1485+
self.assertEqual(t.multilink, [ "1", "2" ])
1486+
self.assertEqual(t.link, "1")
1487+
1488+
t = self.db.test.getnode('3')
1489+
self.assertTrue(t.cl.is_retired('3'))
1490+
1491+
1492+
def testEditCSVTestBadRow(self):
1493+
form = dict(rows='\nid,boolean,date,interval,intval,link,messages,multilink,number,pw,string\n1,2019-02-10,2d,4,,,,3.4,pass,foo')
1494+
cl = self._make_client(form, userid='1', classname='test')
1495+
cl._ok_message = []
1496+
cl._error_message = []
1497+
actions.EditCSVAction(cl).handle()
1498+
print(cl._error_message)
1499+
self.assertEqual(cl._error_message, ['Not enough values on line 3'])
1500+
14611501
def testEditCSVRestore(self):
14621502
form = dict(rows='id,name\n1,key1\n2,key2')
14631503
cl = self._make_client(form, userid='1', classname='keyword')

test/test_templating.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ def t(s): return p.hyper_re.sub(p._hyper_repl, s)
296296
ae(t('http://roundup.net/%c/' % c),
297297
'<a href="http://roundup.net/%c/" rel="nofollow noopener">http://roundup.net/%c/</a>' % (c, c))
298298

299-
'''
299+
r'''
300300
class HTMLPermissions:
301301
def is_edit_ok(self):
302302
def is_view_ok(self):

0 commit comments

Comments
 (0)