Merge "Sanitize data for CSV generation"
This commit is contained in:
commit
058815d1f5
@ -57,7 +57,10 @@ class CsvDataMixin(object):
|
||||
self.writer.writerow([self.encode(col) for col in args])
|
||||
|
||||
def encode(self, value):
|
||||
return str(value)
|
||||
data = str(value)
|
||||
if data and data[0] in ('=', '+', '-', '@', chr(9), chr(13)):
|
||||
return "'" + data
|
||||
return data
|
||||
|
||||
|
||||
class BaseCsvResponse(CsvDataMixin, HttpResponse):
|
||||
|
@ -1227,10 +1227,10 @@ class UsageViewTests(test.BaseAdminViewTests):
|
||||
hdr = ('"Instance Name","VCPUs","RAM (MB)","Disk (GB)",'
|
||||
'"Usage (Hours)","Age (Seconds)","State"')
|
||||
self.assertContains(res, '%s\r\n' % hdr)
|
||||
usage_1_quoted = ('"=cmd|\' /C calc\'!A0","1","512","0","122.87",'
|
||||
usage_1_quoted = ('"\'=cmd|\' /C calc\'!A0","1","512","0","122.87",'
|
||||
'"442321","Active"')
|
||||
self.assertContains(res, '%s\r\n' % usage_1_quoted)
|
||||
usage_2_quoted = ('"=cmd|\' /C calc\'!A0","1","512","0","2.61",'
|
||||
usage_2_quoted = ('"\'=cmd|\' /C calc\'!A0","1","512","0","2.61",'
|
||||
'"9367","Active"')
|
||||
self.assertContains(res, '%s\r\n' % usage_2_quoted)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user