diff test/test_cgi.py @ 6601:154f286061e2

Add date column to CSV output - test date display code. Test date formatting code. Uses date.Date mock/override so creation date is reproducible.
author John Rouillard <rouilj@ieee.org>
date Wed, 26 Jan 2022 17:30:59 -0500
parents 65336409738c
children da6c9050a79e
line wrap: on
line diff
--- a/test/test_cgi.py	Wed Jan 26 16:48:06 2022 -0500
+++ b/test/test_cgi.py	Wed Jan 26 17:30:59 2022 -0500
@@ -104,7 +104,7 @@
 
     def testCSVExportBase(self):
         cl = self._make_client(
-            {'@columns': 'id,title,status,keyword,assignedto,nosy'},
+            {'@columns': 'id,title,status,keyword,assignedto,nosy,creation'},
             nodeid=None, userid='1')
         cl.classname = 'issue'
 
@@ -112,6 +112,16 @@
             roles='User', realname='demo')
         key_id1=self.db.keyword.create(name='keyword1')
         key_id2=self.db.keyword.create(name='keyword2')
+
+        originalDate = date.Date
+        dummy=date.Date('2000-06-26.00:34:02.0')
+        # is a closure the best way to return a static Date object??
+        def dummyDate(adate=None):
+            def dummyClosure(adate=None, translator=None):
+                return dummy
+            return dummyClosure
+        date.Date = dummyDate()
+
         self.db.issue.create(title='foo1', status='2', assignedto='4', nosy=['3',demo_id])
         self.db.issue.create(title='bar2', status='1', assignedto='3', keyword=[key_id1,key_id2])
         self.db.issue.create(title='baz32', status='4')
@@ -120,26 +130,31 @@
         cl.request.wfile = output
         # call export version that outputs names
         actions.ExportCSVAction(cl).handle()
-        should_be=(s2b('"id","title","status","keyword","assignedto","nosy"\r\n'
-                       '"1","foo1","deferred","","Contrary, Mary","Bork, Chef;Contrary, Mary;demo"\r\n'
-                       '"2","bar2","unread","keyword1;keyword2","Bork, Chef","Bork, Chef"\r\n'
-                       '"3","baz32","need-eg","","",""\r\n'))
+        should_be=(s2b('"id","title","status","keyword","assignedto","nosy","creation"\r\n'
+                       '"1","foo1","deferred","","Contrary, Mary","Bork, Chef;Contrary, Mary;demo","2000-06-26 00:34"\r\n'
+                       '"2","bar2","unread","keyword1;keyword2","Bork, Chef","Bork, Chef","2000-06-26 00:34"\r\n'
+                       '"3","baz32","need-eg","","","","2000-06-26 00:34"\r\n'))
+
+
         #print(should_be)
-        print(output.getvalue())
+        #print(output.getvalue())
         self.assertEqual(output.getvalue(), should_be)
         output = io.BytesIO()
         cl.request = MockNull()
         cl.request.wfile = output
         # call export version that outputs id numbers
         actions.ExportCSVWithIdAction(cl).handle()
-        should_be = s2b('"id","title","status","keyword","assignedto","nosy"\r\n'
-                        "\"1\",\"foo1\",\"2\",\"[]\",\"4\",\"['3', '4', '5']\"\r\n"
-                        "\"2\",\"bar2\",\"1\",\"['1', '2']\",\"3\",\"['3']\"\r\n"
-                        '\"3\","baz32",\"4\","[]","None","[]"\r\n')
+        should_be = s2b('"id","title","status","keyword","assignedto","nosy","creation"\r\n'
+                        '''"1","foo1","2","[]","4","['3', '4', '5']","2000-06-26.00:34:02"\r\n'''
+                        '''"2","bar2","1","['1', '2']","3","['3']","2000-06-26.00:34:02"\r\n'''
+                        '''"3","baz32","4","[]","None","[]","2000-06-26.00:34:02"\r\n''')
         #print(should_be)
         #print(output.getvalue())
         self.assertEqual(output.getvalue(), should_be)
 
+        # reset the real date command
+        date.Date = originalDate
+
         # test full text search
         # call export version that outputs names
         cl = self._make_client(

Roundup Issue Tracker: http://roundup-tracker.org/