You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
#!/usr/bin/env python
 | 
						|
# Copyright 2016 The Chromium Authors. All rights reserved.
 | 
						|
# Use of this source code is governed by a BSD-style license that can be
 | 
						|
# found in the LICENSE file.
 | 
						|
"""Tests for git_dates."""
 | 
						|
 | 
						|
import datetime
 | 
						|
import os
 | 
						|
import sys
 | 
						|
import unittest
 | 
						|
 | 
						|
DEPOT_TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
						|
sys.path.insert(0, DEPOT_TOOLS_ROOT)
 | 
						|
 | 
						|
from testing_support import coverage_utils
 | 
						|
 | 
						|
 | 
						|
class GitDatesTestBase(unittest.TestCase):
 | 
						|
  @classmethod
 | 
						|
  def setUpClass(cls):
 | 
						|
    super(GitDatesTestBase, cls).setUpClass()
 | 
						|
    import git_dates
 | 
						|
    cls.git_dates = git_dates
 | 
						|
 | 
						|
 | 
						|
class GitDatesTest(GitDatesTestBase):
 | 
						|
  def testTimestampOffsetToDatetime(self):
 | 
						|
    # 2016-01-25 06:25:43 UTC
 | 
						|
    timestamp = 1453703143
 | 
						|
 | 
						|
    offset = '+1100'
 | 
						|
    expected_tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=11), '')
 | 
						|
    expected = datetime.datetime(2016, 1, 25, 17, 25, 43, tzinfo=expected_tz)
 | 
						|
    result = self.git_dates.timestamp_offset_to_datetime(timestamp, offset)
 | 
						|
    self.assertEquals(expected, result)
 | 
						|
    self.assertEquals(datetime.timedelta(hours=11), result.utcoffset())
 | 
						|
    self.assertEquals('+1100', result.tzname())
 | 
						|
    self.assertEquals(datetime.timedelta(0), result.dst())
 | 
						|
 | 
						|
    offset = '-0800'
 | 
						|
    expected_tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=-8), '')
 | 
						|
    expected = datetime.datetime(2016, 1, 24, 22, 25, 43, tzinfo=expected_tz)
 | 
						|
    result = self.git_dates.timestamp_offset_to_datetime(timestamp, offset)
 | 
						|
    self.assertEquals(expected, result)
 | 
						|
    self.assertEquals(datetime.timedelta(hours=-8), result.utcoffset())
 | 
						|
    self.assertEquals('-0800', result.tzname())
 | 
						|
    self.assertEquals(datetime.timedelta(0), result.dst())
 | 
						|
 | 
						|
    # Invalid offset.
 | 
						|
    offset = '-08xx'
 | 
						|
    expected_tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=0), '')
 | 
						|
    expected = datetime.datetime(2016, 1, 25, 6, 25, 43, tzinfo=expected_tz)
 | 
						|
    result = self.git_dates.timestamp_offset_to_datetime(timestamp, offset)
 | 
						|
    self.assertEquals(expected, result)
 | 
						|
    self.assertEquals(datetime.timedelta(hours=0), result.utcoffset())
 | 
						|
    self.assertEquals('UTC', result.tzname())
 | 
						|
    self.assertEquals(datetime.timedelta(0), result.dst())
 | 
						|
 | 
						|
    # Offset out of range.
 | 
						|
    offset = '+2400'
 | 
						|
    self.assertRaises(ValueError, self.git_dates.timestamp_offset_to_datetime,
 | 
						|
                      timestamp, offset)
 | 
						|
 | 
						|
  def testDatetimeString(self):
 | 
						|
    tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=11), '')
 | 
						|
    dt = datetime.datetime(2016, 1, 25, 17, 25, 43, tzinfo=tz)
 | 
						|
    self.assertEquals('2016-01-25 17:25:43 +1100',
 | 
						|
                      self.git_dates.datetime_string(dt))
 | 
						|
 | 
						|
    tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=-8), '')
 | 
						|
    dt = datetime.datetime(2016, 1, 24, 22, 25, 43, tzinfo=tz)
 | 
						|
    self.assertEquals('2016-01-24 22:25:43 -0800',
 | 
						|
                      self.git_dates.datetime_string(dt))
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
  sys.exit(coverage_utils.covered_main(
 | 
						|
    os.path.join(DEPOT_TOOLS_ROOT, 'git_dates.py')))
 |