@@ -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\n 1,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 = '\n id,boolean,date,interval,intval,link,messages,multilink,number,pw,string\n 1,true,2019-02-10,2d,4,,,,3.4,pass,foo\n 2,no,2017-02-10,1d,-9,1,,1,-2.4,poof,bar\n 3,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 = '\n id,boolean,date,interval,intval,link,messages,multilink,number,pw,string\n 1,false,2019-03-10,1d,3,1,,1:2,2.2,pass,bar\n 2,,,,,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 = '\n id,boolean,date,interval,intval,link,messages,multilink,number,pw,string\n 1,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\n 1,key1\n 2,key2' )
14631503 cl = self ._make_client (form , userid = '1' , classname = 'keyword' )
0 commit comments