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
56 56 ruler = '' 57 57 prompt = "Trac> " 58 58 __env = None 59 _date_format = '%Y-%m-%d' 60 _datetime_format = '%Y-%m-%d %H:%M:%S' 61 _date_format_hint = 'YYYY-MM-DD' 59 62 60 63 def __init__(self, envdir=None): 61 64 cmd.Cmd.__init__(self) … … 241 244 rows = self.db_query("SELECT name FROM version") 242 245 return [row[0] for row in rows] 243 246 244 def _parse_date time(self, t):247 def _parse_date(self, t): 245 248 seconds = None 246 249 t = t.strip() 247 250 if t == 'now': 248 251 seconds = int(time.time()) 249 252 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', 251 254 '%b %d, %Y']: 252 255 try: 253 256 pt = time.strptime(t, format) … … 264 267 print >> sys.stderr, 'Unknown time format' 265 268 return seconds 266 269 270 def _format_date(self, s): 271 return time.strftime(self._date_format, time.localtime(s)) 267 272 273 def _format_datetime(self, s): 274 return time.strftime(self._datetime_format, time.localtime(s)) 275 276 268 277 ## 269 278 ## Available Commands 270 279 ## … … 718 727 rows = self.db_query("SELECT name,max(version),time " 719 728 "FROM wiki GROUP BY name ORDER BY name") 720 729 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]) 722 731 723 732 def _do_wiki_remove(self, name): 724 733 cnx = self.db_open() … … 899 908 'Rename milestone'), 900 909 ('milestone due <name> <due>', 901 910 'Set milestone due date (Format: "%s" or "now")' 902 % util.get_date_format_hint()),911 % _date_format_hint), 903 912 ('milestone completed <name> <completed>', 904 913 'Set milestone completed date (Format: "%s" or "now")' 905 % util.get_date_format_hint()),914 % _date_format_hint), 906 915 ('milestone remove <name>', 'Remove milestone')] 907 916 908 917 def complete_milestone (self, text, line, begidx, endidx): … … 938 947 data = [] 939 948 self.db_open() 940 949 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 943 953 self.print_listing(['Name', 'Due', 'Completed'], data) 944 954 945 955 def _do_milestone_rename(self, name, newname): … … 962 972 def _do_milestone_set_due(self, name, t): 963 973 self.db_open() 964 974 milestone = Milestone(self.__env, name) 965 milestone.due = self._parse_date time(t)975 milestone.due = self._parse_date(t) 966 976 milestone.update() 967 977 968 978 def _do_milestone_set_completed(self, name, t): 969 979 self.db_open() 970 980 milestone = Milestone(self.__env, name) 971 milestone.completed = self._parse_date time(t)981 milestone.completed = self._parse_date(t) 972 982 milestone.update() 973 983 974 984 ## Version … … 978 988 'Rename version'), 979 989 ('version time <name> <time>', 980 990 'Set version date (Format: "%s" or "now")' 981 % util.get_date_format_hint()),991 % _date_format_hint), 982 992 ('version remove <name>', 'Remove version')] 983 993 984 994 def complete_version (self, text, line, begidx, endidx): … … 1011 1021 def _do_version_list(self): 1012 1022 rows = self.db_query("SELECT name,time FROM version ORDER BY time,name") 1013 1023 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]) 1015 1025 1016 1026 def _do_version_rename(self, name, newname): 1017 1027 d = {'name':name, 'newname':newname} … … 1040 1050 "WHERE name='%(name)s'" % d) 1041 1051 if not list(rows): 1042 1052 raise Exception, "No such version '%s'" % name 1043 seconds = self._parse_date time(t)1053 seconds = self._parse_date(t) 1044 1054 if seconds != None: 1045 1055 self.db_update("UPDATE version SET time='%s' WHERE name='%s'" 1046 1056 % (seconds, name)) -
trac/scripts/tests/admin.py
111 111 112 112 self._admin = admin.TracAdmin() 113 113 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)) 114 117 115 118 def tearDown(self): 116 119 self.env = None … … 580 583 test passes valid arguments and checks for success. 581 584 """ 582 585 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) 585 587 test_results = self._execute('version list') 586 588 self.assertEquals(self.expected_results[test_name], test_results) 587 589 … … 592 594 error message. 593 595 """ 594 596 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) 597 598 self.assertEquals(self.expected_results[test_name], test_results) 598 599 599 600 def test_version_rename_ok(self): … … 621 622 test passes valid arguments and checks for success. 622 623 """ 623 624 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) 626 626 test_results = self._execute('version list') 627 627 self.assertEquals(self.expected_results[test_name], test_results) 628 628 … … 632 632 test tries to change the time on a version that does not exist. 633 633 """ 634 634 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) 637 636 self.assertEquals(self.expected_results[test_name], test_results) 638 637 639 638 def test_version_remove_ok(self): … … 673 672 test passes valid arguments and checks for success. 674 673 """ 675 674 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) 678 676 test_results = self._execute('milestone list') 679 677 self.assertEquals(self.expected_results[test_name], test_results) 680 678 … … 685 683 error message. 686 684 """ 687 685 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) 690 687 self.assertEquals(self.expected_results[test_name], test_results) 691 688 692 689 def test_milestone_rename_ok(self): … … 714 711 test passes valid arguments and checks for success. 715 712 """ 716 713 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) 719 715 test_results = self._execute('milestone list') 720 716 self.assertEquals(self.expected_results[test_name], test_results) 721 717 … … 725 721 test tries to change the due date on a milestone that does not exist. 726 722 """ 727 723 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) 730 725 self.assertEquals(self.expected_results[test_name], test_results) 731 726 732 727 def test_milestone_completed_ok(self): … … 735 730 test passes valid arguments and checks for success. 736 731 """ 737 732 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) 740 735 test_results = self._execute('milestone list') 741 736 self.assertEquals(self.expected_results[test_name], test_results) 742 737 … … 747 742 exist. 748 743 """ 749 744 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) 752 747 self.assertEquals(self.expected_results[test_name], test_results) 753 748 754 749 def test_milestone_remove_ok(self): -
trac/scripts/tests/admin-tests.txt
42 42 version list -- Show versions 43 43 version add <name> [time] -- Add version 44 44 version rename <name> <newname> -- Rename version 45 version time <name> <time> -- Set version date (Format: " %(date_format_hint)s" or "now")45 version time <name> <time> -- Set version date (Format: "YYYY-MM-DD" or "now") 46 46 version remove <name> -- Remove version 47 47 milestone list -- Show milestones 48 48 milestone add <name> [due] -- Add milestone 49 49 milestone 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")50 milestone due <name> <due> -- Set milestone due date (Format: "YYYY-MM-DD" or "now") 51 milestone completed <name> <completed> -- Set milestone completed date (Format: "YYYY-MM-DD" or "now") 52 52 milestone remove <name> -- Remove milestone 53 53 54 54 Visit the Trac Project at http://trac.edgewall.com/ … … 387 387 ===== test_version_add_ok ===== 388 388 389 389 Name Time 390 ---------------- --------------390 ---------------- 391 391 1.0 392 392 2.0 393 9.9 Thu Jan 1 00:00:00 2004393 9.9 2004-01-11 394 394 395 395 ===== test_version_add_error_already_exists ===== 396 396 Command add failed: column name is not unique … … 406 406 ===== test_version_time_ok ===== 407 407 408 408 Name Time 409 ---------------- --------------409 ---------------- 410 410 1.0 411 2.0 Thu Jan 1 00:00:00 2004411 2.0 2004-01-11 412 412 413 413 ===== test_version_time_error_bad_version ===== 414 414 Command time failed: No such version 'bad_version' … … 431 431 432 432 ===== test_milestone_add_ok ===== 433 433 434 Name Due Completed435 ------------------------------------ --------------436 new_milestone Thu Jan 1 00:00:00 2004434 Name Due Completed 435 ------------------------------------ 436 new_milestone 2004-01-11 437 437 milestone1 438 438 milestone2 439 439 milestone3 … … 454 454 Command rename failed: Milestone bad_milestone does not exist. 455 455 ===== test_milestone_due_ok ===== 456 456 457 Name Due Completed458 --------------------------------- --------------459 milestone2 Thu Jan 1 00:00:00 2004457 Name Due Completed 458 --------------------------------- 459 milestone2 2004-01-11 460 460 milestone1 461 461 milestone3 462 462 milestone4 … … 466 466 ===== test_milestone_completed_ok ===== 467 467 468 468 Name Due Completed 469 ------------------------------------ -----469 ------------------------------------ 470 470 milestone1 471 milestone2 Thu Jan 1 00:00:00 2004471 milestone2 2004-01-11 00:00:00 472 472 milestone3 473 473 milestone4 474 474
