mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 00:25:15 +00:00 
			
		
		
		
	[compat] Add compat_datetime_from_timestamp (#11902)
				
					
				
			Authored by: pzhlkj6612, seproDev Co-authored-by: sepro <sepro@sepr0.com>
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
# Allow direct execution
 | 
			
		||||
import datetime as dt
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import unittest
 | 
			
		||||
@@ -12,7 +13,7 @@ import struct
 | 
			
		||||
 | 
			
		||||
from yt_dlp import compat
 | 
			
		||||
from yt_dlp.compat import urllib  # isort: split
 | 
			
		||||
from yt_dlp.compat import compat_etree_fromstring, compat_expanduser
 | 
			
		||||
from yt_dlp.compat import compat_etree_fromstring, compat_expanduser, compat_datetime_from_timestamp
 | 
			
		||||
from yt_dlp.compat.urllib.request import getproxies
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -59,6 +60,45 @@ class TestCompat(unittest.TestCase):
 | 
			
		||||
    def test_struct_unpack(self):
 | 
			
		||||
        self.assertEqual(struct.unpack('!B', b'\x00'), (0,))
 | 
			
		||||
 | 
			
		||||
    def test_compat_datetime_from_timestamp(self):
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(0),
 | 
			
		||||
            dt.datetime(1970, 1, 1, 0, 0, 0, tzinfo=dt.timezone.utc))
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(1),
 | 
			
		||||
            dt.datetime(1970, 1, 1, 0, 0, 1, tzinfo=dt.timezone.utc))
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(3600),
 | 
			
		||||
            dt.datetime(1970, 1, 1, 1, 0, 0, tzinfo=dt.timezone.utc))
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(-1),
 | 
			
		||||
            dt.datetime(1969, 12, 31, 23, 59, 59, tzinfo=dt.timezone.utc))
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(-86400),
 | 
			
		||||
            dt.datetime(1969, 12, 31, 0, 0, 0, tzinfo=dt.timezone.utc))
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(0.5),
 | 
			
		||||
            dt.datetime(1970, 1, 1, 0, 0, 0, 500000, tzinfo=dt.timezone.utc))
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(1.000001),
 | 
			
		||||
            dt.datetime(1970, 1, 1, 0, 0, 1, 1, tzinfo=dt.timezone.utc))
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(-1.25),
 | 
			
		||||
            dt.datetime(1969, 12, 31, 23, 59, 58, 750000, tzinfo=dt.timezone.utc))
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(-1577923200),
 | 
			
		||||
            dt.datetime(1920, 1, 1, 0, 0, 0, tzinfo=dt.timezone.utc))
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(4102444800),
 | 
			
		||||
            dt.datetime(2100, 1, 1, 0, 0, 0, tzinfo=dt.timezone.utc))
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            compat_datetime_from_timestamp(173568960000),
 | 
			
		||||
            dt.datetime(7470, 3, 8, 0, 0, 0, tzinfo=dt.timezone.utc))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    unittest.main()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user