����JFIF��H�H����Exif��MM�*���� ��3����V�����3������3�(��������������������3�����
Server IP : 74.208.127.88 / Your IP : 3.128.190.205 Web Server : Apache/2.4.41 (Ubuntu) System : Linux ubuntu 5.4.0-163-generic #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 x86_64 User : www-data ( 33) PHP Version : 7.4.3-4ubuntu2.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/python3/dist-packages/twisted/python/test/ |
Upload File : |
# # Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Tests for L{twisted.python._tzhelper}. """ from os import environ try: from time import tzset except ImportError: tzset = None from twisted.python._tzhelper import FixedOffsetTimeZone from twisted.trial.unittest import TestCase, SkipTest from datetime import timedelta from time import mktime as mktime_real # On some rare platforms (FreeBSD 8? I was not able to reproduce # on FreeBSD 9) 'mktime' seems to always fail once tzset() has been # called more than once in a process lifetime. I think this is # just a platform bug, so let's work around it. -glyph def mktime(t9): """ Call L{mktime_real}, and if it raises L{OverflowError}, catch it and raise SkipTest instead. @param t9: A time as a 9-item tuple. @type t9: L{tuple} @return: A timestamp. @rtype: L{float} """ try: return mktime_real(t9) except OverflowError: raise SkipTest( "Platform cannot construct time zone for {0!r}" .format(t9) ) def setTZ(name): """ Set time zone. @param name: a time zone name @type name: L{str} """ if tzset is None: return if name is None: try: del environ["TZ"] except KeyError: pass else: environ["TZ"] = name tzset() def addTZCleanup(testCase): """ Add cleanup hooks to a test case to reset timezone to original value. @param testCase: the test case to add the cleanup to. @type testCase: L{unittest.TestCase} """ tzIn = environ.get("TZ", None) @testCase.addCleanup def resetTZ(): setTZ(tzIn) class FixedOffsetTimeZoneTests(TestCase): """ Tests for L{FixedOffsetTimeZone}. """ def test_tzinfo(self): """ Test that timezone attributes respect the timezone as set by the standard C{TZ} environment variable and L{tzset} API. """ if tzset is None: raise SkipTest( "Platform cannot change timezone; unable to verify offsets." ) def testForTimeZone(name, expectedOffsetDST, expectedOffsetSTD): setTZ(name) localDST = mktime((2006, 6, 30, 0, 0, 0, 4, 181, 1)) localSTD = mktime((2007, 1, 31, 0, 0, 0, 2, 31, 0)) tzDST = FixedOffsetTimeZone.fromLocalTimeStamp(localDST) tzSTD = FixedOffsetTimeZone.fromLocalTimeStamp(localSTD) self.assertEqual( tzDST.tzname(localDST), "UTC{0}".format(expectedOffsetDST) ) self.assertEqual( tzSTD.tzname(localSTD), "UTC{0}".format(expectedOffsetSTD) ) self.assertEqual(tzDST.dst(localDST), timedelta(0)) self.assertEqual(tzSTD.dst(localSTD), timedelta(0)) def timeDeltaFromOffset(offset): assert len(offset) == 5 sign = offset[0] hours = int(offset[1:3]) minutes = int(offset[3:5]) if sign == "-": hours = -hours minutes = -minutes else: assert sign == "+" return timedelta(hours=hours, minutes=minutes) self.assertEqual( tzDST.utcoffset(localDST), timeDeltaFromOffset(expectedOffsetDST) ) self.assertEqual( tzSTD.utcoffset(localSTD), timeDeltaFromOffset(expectedOffsetSTD) ) addTZCleanup(self) # UTC testForTimeZone("UTC+00", "+0000", "+0000") # West of UTC testForTimeZone("EST+05EDT,M4.1.0,M10.5.0", "-0400", "-0500") # East of UTC testForTimeZone("CEST-01CEDT,M4.1.0,M10.5.0", "+0200", "+0100") # No DST testForTimeZone("CST+06", "-0600", "-0600")