Skip to content

Commit 838c7b6

Browse files
committed
fixed issue2550993 and added test case
1 parent 2d6b403 commit 838c7b6

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

CHANGES.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ Fixed:
3232
selecting columns to display in the issues list (Christof Meerwald)
3333
- issue2550988: fixed fallback to pseudo random number generator in
3434
case SystemRandom isn't available, prefer use of secrets module if
35-
available (Python 3.6+)
35+
available (Python 3.6+) (Christof Meerwald)
36+
- issue2550993: fixed edit CSV action to update restored items to the
37+
new value instead of restoring with the previous value (Christof
38+
Meerwald)
3639

3740

3841
2018-07-13 1.6.0

roundup/cgi/actions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ def handle(self):
504504
# If a CSV line just mentions an id and the corresponding
505505
# item is retired, then the item is restored.
506506
cl.restore(itemid)
507-
continue
507+
exists = 1
508508
else:
509509
exists = 1
510510

test/test_cgi.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1349,6 +1349,36 @@ def testEditCSV(self):
13491349
k = self.db.keyword.getnode('1')
13501350
self.assertEqual(k.name, u2s(u'\xe4\xf6\xfc'))
13511351

1352+
def testEditCSVRestore(self):
1353+
form = dict(rows='id,name\n1,key1\n2,key2')
1354+
cl = self._make_client(form, userid='1', classname='keyword')
1355+
cl._ok_message = []
1356+
actions.EditCSVAction(cl).handle()
1357+
self.assertEqual(cl._ok_message, ['Items edited OK'])
1358+
k = self.db.keyword.getnode('1')
1359+
self.assertEqual(k.name, 'key1')
1360+
k = self.db.keyword.getnode('2')
1361+
self.assertEqual(k.name, 'key2')
1362+
1363+
form = dict(rows='id,name\n1,key1')
1364+
cl = self._make_client(form, userid='1', classname='keyword')
1365+
cl._ok_message = []
1366+
actions.EditCSVAction(cl).handle()
1367+
self.assertEqual(cl._ok_message, ['Items edited OK'])
1368+
k = self.db.keyword.getnode('1')
1369+
self.assertEqual(k.name, 'key1')
1370+
self.assertEqual(self.db.keyword.is_retired('2'), True)
1371+
1372+
form = dict(rows='id,name\n1,newkey1\n2,newkey2')
1373+
cl = self._make_client(form, userid='1', classname='keyword')
1374+
cl._ok_message = []
1375+
actions.EditCSVAction(cl).handle()
1376+
self.assertEqual(cl._ok_message, ['Items edited OK'])
1377+
k = self.db.keyword.getnode('1')
1378+
self.assertEqual(k.name, 'newkey1')
1379+
k = self.db.keyword.getnode('2')
1380+
self.assertEqual(k.name, 'newkey2')
1381+
13521382
def testserve_static_files(self):
13531383
# make a client instance
13541384
cl = self._make_client({})

0 commit comments

Comments
 (0)