Edgewall Software

Ticket #1606: trac-admin_ISO_datetimes_r1810.diff

File trac-admin_ISO_datetimes_r1810.diff, 13.4 KB (added by Ian Leader <__ian.leader__@…>, 7 years ago)
  • trac/scripts/admin.py

     
    5656    ruler = '' 
    5757    prompt = "Trac> " 
    5858    __env = None 
     59    _date_format = '%Y-%m-%d' 
     60    _datetime_format = '%Y-%m-%d %H:%M:%S' 
     61    _date_format_hint = 'YYYY-MM-DD' 
    5962 
    6063    def __init__(self, envdir=None): 
    6164        cmd.Cmd.__init__(self) 
     
    241244        rows = self.db_query("SELECT name FROM version") 
    242245        return [row[0] for row in rows] 
    243246 
    244     def _parse_datetime(self, t): 
     247    def _parse_date(self, t): 
    245248        seconds = None 
    246249        t = t.strip() 
    247250        if t == 'now': 
    248251            seconds = int(time.time()) 
    249252        else: 
    250             for format in ['%x %X', '%x, %X', '%X %x', '%X, %x', '%x', '%c', 
     253            for format in [self._date_format, '%x %X', '%x, %X', '%X %x', '%X, %x', '%x', '%c', 
    251254                           '%b %d, %Y']: 
    252255                try: 
    253256                    pt = time.strptime(t, format) 
     
    264267            print >> sys.stderr, 'Unknown time format' 
    265268        return seconds 
    266269 
     270    def _format_date(self, s): 
     271        return time.strftime(self._date_format, time.localtime(s)) 
    267272 
     273    def _format_datetime(self, s): 
     274        return time.strftime(self._datetime_format, time.localtime(s)) 
     275 
     276 
    268277    ## 
    269278    ## Available Commands 
    270279    ## 
     
    718727        rows = self.db_query("SELECT name,max(version),time " 
    719728                             "FROM wiki GROUP BY name ORDER BY name") 
    720729        self.print_listing(['Title', 'Edits', 'Modified'], 
    721                            [(r[0], r[1], time.ctime(r[2])) for r in rows]) 
     730                           [(r[0], r[1], self._format_datetime(r[2])) for r in rows]) 
    722731 
    723732    def _do_wiki_remove(self, name): 
    724733        cnx = self.db_open() 
     
    899908                        'Rename milestone'), 
    900909                       ('milestone due <name> <due>', 
    901910                        'Set milestone due date (Format: "%s" or "now")' 
    902                         % util.get_date_format_hint()), 
     911                        % _date_format_hint), 
    903912                       ('milestone completed <name> <completed>', 
    904913                        'Set milestone completed date (Format: "%s" or "now")' 
    905                         % util.get_date_format_hint()), 
     914                        % _date_format_hint), 
    906915                       ('milestone remove <name>', 'Remove milestone')] 
    907916 
    908917    def complete_milestone (self, text, line, begidx, endidx): 
     
    938947        data = [] 
    939948        self.db_open() 
    940949        for m in Milestone.select(self.__env, include_completed=True): 
    941             data.append((m.name, m.due and time.strftime('%c', time.localtime(m.due)), 
    942                          m.completed and time.strftime('%c', time.localtime(m.completed)))) 
     950            data.append((m.name, m.due and self._format_date(m.due), 
     951                         m.completed and self._format_datetime(m.completed))) 
     952 
    943953        self.print_listing(['Name', 'Due', 'Completed'], data) 
    944954 
    945955    def _do_milestone_rename(self, name, newname): 
     
    962972    def _do_milestone_set_due(self, name, t): 
    963973        self.db_open() 
    964974        milestone = Milestone(self.__env, name) 
    965         milestone.due = self._parse_datetime(t) 
     975        milestone.due = self._parse_date(t) 
    966976        milestone.update() 
    967977 
    968978    def _do_milestone_set_completed(self, name, t): 
    969979        self.db_open() 
    970980        milestone = Milestone(self.__env, name) 
    971         milestone.completed = self._parse_datetime(t) 
     981        milestone.completed = self._parse_date(t) 
    972982        milestone.update() 
    973983 
    974984    ## Version 
     
    978988                        'Rename version'), 
    979989                       ('version time <name> <time>', 
    980990                        'Set version date (Format: "%s" or "now")' 
    981                         % util.get_date_format_hint()), 
     991                        % _date_format_hint), 
    982992                       ('version remove <name>', 'Remove version')] 
    983993 
    984994    def complete_version (self, text, line, begidx, endidx): 
     
    10111021    def _do_version_list(self): 
    10121022        rows = self.db_query("SELECT name,time FROM version ORDER BY time,name") 
    10131023        self.print_listing(['Name', 'Time'], 
    1014                            [(r[0], r[1] and time.ctime(r[1])) for r in rows]) 
     1024                           [(r[0], r[1] and self._format_date(r[1])) for r in rows]) 
    10151025 
    10161026    def _do_version_rename(self, name, newname): 
    10171027        d = {'name':name, 'newname':newname} 
     
    10401050                             "WHERE name='%(name)s'" % d) 
    10411051        if not list(rows): 
    10421052            raise Exception, "No such version '%s'" % name 
    1043         seconds = self._parse_datetime(t) 
     1053        seconds = self._parse_date(t) 
    10441054        if seconds != None: 
    10451055            self.db_update("UPDATE version SET time='%s' WHERE name='%s'" 
    10461056                           % (seconds, name)) 
  • trac/scripts/tests/admin.py

     
    111111 
    112112        self._admin = admin.TracAdmin() 
    113113        self._admin.env_set('', self.env) 
     114 
     115        # Set test date to 11th Jan 2004 
     116        self._test_date = time.strftime('%Y-%m-%d', (2004, 1, 11, 0, 0, 0, 6, 1, -1)) 
    114117     
    115118    def tearDown(self): 
    116119        self.env = None 
     
    580583        test passes valid arguments and checks for success. 
    581584        """ 
    582585        test_name = sys._getframe().f_code.co_name 
    583         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    584         self._execute('version add 9.9 "%s"' % new_years) 
     586        self._execute('version add 9.9 "%s"' % self._test_date) 
    585587        test_results = self._execute('version list') 
    586588        self.assertEquals(self.expected_results[test_name], test_results) 
    587589 
     
    592594        error message. 
    593595        """ 
    594596        test_name = sys._getframe().f_code.co_name 
    595         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    596         test_results = self._execute('version add 1.0 "%s"' % new_years) 
     597        test_results = self._execute('version add 1.0 "%s"' % self._test_date) 
    597598        self.assertEquals(self.expected_results[test_name], test_results) 
    598599 
    599600    def test_version_rename_ok(self): 
     
    621622        test passes valid arguments and checks for success. 
    622623        """ 
    623624        test_name = sys._getframe().f_code.co_name 
    624         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    625         self._execute('version time 2.0 "%s"' % new_years) 
     625        self._execute('version time 2.0 "%s"' % self._test_date) 
    626626        test_results = self._execute('version list') 
    627627        self.assertEquals(self.expected_results[test_name], test_results) 
    628628 
     
    632632        test tries to change the time on a version that does not exist. 
    633633        """ 
    634634        test_name = sys._getframe().f_code.co_name 
    635         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    636         test_results = self._execute('version time bad_version "%s"' % new_years) 
     635        test_results = self._execute('version time bad_version "%s"' % self._test_date) 
    637636        self.assertEquals(self.expected_results[test_name], test_results) 
    638637 
    639638    def test_version_remove_ok(self): 
     
    673672        test passes valid arguments and checks for success. 
    674673        """ 
    675674        test_name = sys._getframe().f_code.co_name 
    676         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    677         self._execute('milestone add new_milestone "%s"' % new_years) 
     675        self._execute('milestone add new_milestone "%s"' % self._test_date) 
    678676        test_results = self._execute('milestone list') 
    679677        self.assertEquals(self.expected_results[test_name], test_results) 
    680678 
     
    685683        error message. 
    686684        """ 
    687685        test_name = sys._getframe().f_code.co_name 
    688         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    689         test_results = self._execute('milestone add milestone1 "%s"' % new_years) 
     686        test_results = self._execute('milestone add milestone1 "%s"' % self._test_date) 
    690687        self.assertEquals(self.expected_results[test_name], test_results) 
    691688 
    692689    def test_milestone_rename_ok(self): 
     
    714711        test passes valid arguments and checks for success. 
    715712        """ 
    716713        test_name = sys._getframe().f_code.co_name 
    717         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    718         self._execute('milestone due milestone2 "%s"' % new_years) 
     714        self._execute('milestone due milestone2 "%s"' % self._test_date) 
    719715        test_results = self._execute('milestone list') 
    720716        self.assertEquals(self.expected_results[test_name], test_results) 
    721717 
     
    725721        test tries to change the due date on a milestone that does not exist. 
    726722        """ 
    727723        test_name = sys._getframe().f_code.co_name 
    728         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    729         test_results = self._execute('milestone due bad_milestone "%s"' % new_years) 
     724        test_results = self._execute('milestone due bad_milestone "%s"' % self._test_date) 
    730725        self.assertEquals(self.expected_results[test_name], test_results) 
    731726 
    732727    def test_milestone_completed_ok(self): 
     
    735730        test passes valid arguments and checks for success. 
    736731        """ 
    737732        test_name = sys._getframe().f_code.co_name 
    738         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    739         self._execute('milestone completed milestone2 "%s"' % new_years) 
     733 
     734        self._execute('milestone completed milestone2 "%s"' % self._test_date) 
    740735        test_results = self._execute('milestone list') 
    741736        self.assertEquals(self.expected_results[test_name], test_results) 
    742737 
     
    747742        exist. 
    748743        """ 
    749744        test_name = sys._getframe().f_code.co_name 
    750         new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1)) 
    751         test_results = self._execute('milestone completed bad_milestone "%s"' % new_years) 
     745 
     746        test_results = self._execute('milestone completed bad_milestone "%s"' % self._test_date) 
    752747        self.assertEquals(self.expected_results[test_name], test_results) 
    753748 
    754749    def test_milestone_remove_ok(self): 
  • trac/scripts/tests/admin-tests.txt

     
    4242version list                                           -- Show versions 
    4343version add <name> [time]                              -- Add version 
    4444version rename <name> <newname>                        -- Rename version 
    45 version time <name> <time>                             -- Set version date (Format: "%(date_format_hint)s" or "now") 
     45version time <name> <time>                             -- Set version date (Format: "YYYY-MM-DD" or "now") 
    4646version remove <name>                                  -- Remove version 
    4747milestone list                                         -- Show milestones 
    4848milestone add <name> [due]                             -- Add milestone 
    4949milestone rename <name> <newname>                      -- Rename milestone 
    50 milestone due <name> <due>                             -- Set milestone due date (Format: "%(date_format_hint)s" or "now") 
    51 milestone completed <name> <completed>                 -- Set milestone completed date (Format: "%(date_format_hint)s" or "now") 
     50milestone due <name> <due>                             -- Set milestone due date (Format: "YYYY-MM-DD" or "now") 
     51milestone completed <name> <completed>                 -- Set milestone completed date (Format: "YYYY-MM-DD" or "now") 
    5252milestone remove <name>                                -- Remove milestone 
    5353 
    5454Visit the Trac Project at http://trac.edgewall.com/ 
     
    387387===== test_version_add_ok ===== 
    388388 
    389389Name  Time                     
    390 ------------------------------ 
     390---------------- 
    3913911.0                            
    3923922.0                            
    393 9.9   Thu Jan  1 00:00:00 2004 
     3939.9   2004-01-11 
    394394 
    395395===== test_version_add_error_already_exists ===== 
    396396Command add failed: column name is not unique 
     
    406406===== test_version_time_ok ===== 
    407407 
    408408Name  Time                     
    409 ------------------------------ 
     409---------------- 
    4104101.0                            
    411 2.0   Thu Jan  1 00:00:00 2004 
     4112.0   2004-01-11 
    412412 
    413413===== test_version_time_error_bad_version ===== 
    414414Command time failed: No such version 'bad_version' 
     
    431431 
    432432===== test_milestone_add_ok ===== 
    433433 
    434 Name           Due                       Completed 
    435 -------------------------------------------------- 
    436 new_milestone  Thu Jan  1 00:00:00 2004 
     434Name           Due         Completed 
     435------------------------------------ 
     436new_milestone  2004-01-11 
    437437milestone1 
    438438milestone2 
    439439milestone3 
     
    454454Command rename failed: Milestone bad_milestone does not exist. 
    455455===== test_milestone_due_ok ===== 
    456456 
    457 Name        Due                       Completed 
    458 ----------------------------------------------- 
    459 milestone2  Thu Jan  1 00:00:00 2004 
     457Name        Due         Completed 
     458--------------------------------- 
     459milestone2  2004-01-11 
    460460milestone1 
    461461milestone3 
    462462milestone4 
     
    466466===== test_milestone_completed_ok ===== 
    467467 
    468468Name        Due  Completed 
    469 ----------------------------------------- 
     469------------------------------------ 
    470470milestone1 
    471 milestone2       Thu Jan  1 00:00:00 2004 
     471milestone2       2004-01-11 00:00:00 
    472472milestone3 
    473473milestone4 
    474474