def test_get_live_channel_history(self, do_request): from oss2.models import LiveRecord from oss2.utils import iso8601_to_unixtime request_text = '''GET /lc?comp=history&live= HTTP/1.1 Host: ming-oss-share.oss-cn-hangzhou.aliyuncs.com Accept-Encoding: identity Connection: keep-alive Accept: */* User-Agent: aliyun-sdk-python/2.1.1(Windows/7/AMD64;2.7.10) date: Tue, 09 Aug 2016 12:24:13 GMT authorization: OSS 2NeLUvmJFYbrj2Eb:j9Fb7RinrXTyyX7FKtP5QAK0FZs=''' response_text = '''HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 09 Aug 2016 12:24:13 GMT Content-Type: application/xml Content-Length: 62 Connection: keep-alive x-oss-request-id: 57A9CB6DF3D45CE477C0227B x-oss-server-time: 1 <?xml version="1.0" encoding="UTF-8"?> <LiveChannelHistory> <LiveRecord> <StartTime>2016-08-06T05:59:28.000Z</StartTime> <EndTime>2016-08-06T06:02:43.000Z</EndTime> <RemoteAddr>8.8.8.8:57186</RemoteAddr> </LiveRecord> <LiveRecord> <StartTime>2016-08-06T06:16:20.000Z</StartTime> <EndTime>2016-08-06T06:16:25.000Z</EndTime> <RemoteAddr>1.1.1.1:57365</RemoteAddr> </LiveRecord> </LiveChannelHistory> ''' req_info = unittests.common.mock_response(do_request, response_text) result = unittests.common.bucket().get_live_channel_history('lc') self.assertRequest(req_info, request_text) self.assertEqual(len(result.records), 2) lr = LiveRecord(iso8601_to_unixtime('2016-08-06T05:59:28.000Z'), iso8601_to_unixtime('2016-08-06T06:02:43.000Z'), '8.8.8.8:57186') self.assertEqual(result.records[0].start_time, lr.start_time) self.assertEqual(result.records[0].end_time, lr.end_time) self.assertEqual(result.records[0].remote_addr, lr.remote_addr) lr = LiveRecord(iso8601_to_unixtime('2016-08-06T06:16:20.000Z'), iso8601_to_unixtime('2016-08-06T06:16:25.000Z'), '1.1.1.1:57365') self.assertEqual(result.records[1].start_time, lr.start_time) self.assertEqual(result.records[1].end_time, lr.end_time) self.assertEqual(result.records[1].remote_addr, lr.remote_addr)
def test_get_live_channel_stat(self, do_request): from oss2.utils import iso8601_to_unixtime from oss2.models import LiveChannelAudioStat, LiveChannelVideoStat request_text = '''GET /lc?comp=stat&live= HTTP/1.1 Host: ming-oss-share.oss-cn-hangzhou.aliyuncs.com Accept-Encoding: identity Connection: keep-alive Accept: */* User-Agent: aliyun-sdk-python/2.1.1(Windows/7/AMD64;2.7.10) date: Tue, 09 Aug 2016 11:51:30 GMT authorization: OSS 2NeLUvmJFYbrj2Eb:BQCNOYdGglcAbhdHhqTfVNtLBow=''' response_text = '''HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 09 Aug 2016 11:51:30 GMT Content-Type: application/xml Content-Length: 100 Connection: keep-alive x-oss-request-id: 57A9C3C27FBF67E9BE686908 x-oss-server-time: 1 <?xml version="1.0" encoding="UTF-8"?> <LiveChannelStat> <Status>Live</Status> <ConnectedTime>2016-08-08T05:59:28.000Z</ConnectedTime> <RemoteAddr>8.8.8.8:57186</RemoteAddr> <Video> <Width>1280</Width> <Height>536</Height> <FrameRate>24</FrameRate> <Bandwidth>214146</Bandwidth> <Codec>H264</Codec> </Video> <Audio> <Bandwidth>11444</Bandwidth> <SampleRate>22050</SampleRate> <Codec>AAC</Codec> </Audio> </LiveChannelStat> ''' req_info = unittests.common.mock_response(do_request, response_text) result = unittests.common.bucket().get_live_channel_stat('lc') self.assertRequest(req_info, request_text) self.assertEqual(result.status, 'Live') self.assertEqual(result.connected_time, iso8601_to_unixtime('2016-08-08T05:59:28.000Z')) self.assertEqual(result.remote_addr, '8.8.8.8:57186') video = LiveChannelVideoStat(1280, 536, 24, 'H264', 214146) self.assertEqual(result.video.bandwidth, video.bandwidth) self.assertEqual(result.video.codec, video.codec) self.assertEqual(result.video.frame_rate, video.frame_rate) self.assertEqual(result.video.height, video.height) self.assertEqual(result.video.width, video.width) audio = LiveChannelAudioStat('AAC', 22050, 11444) self.assertEqual(result.audio.bandwidth, audio.bandwidth) self.assertEqual(result.audio.codec, audio.codec) self.assertEqual(result.audio.sample_rate, audio.sample_rate)
def test_list_live_channel(self, do_request): from oss2.utils import iso8601_to_unixtime request_text = '''GET /?live= HTTP/1.1 Host: ming-oss-share.oss-cn-hangzhou.aliyuncs.com Accept-Encoding: identity Connection: keep-alive Accept: */* User-Agent: aliyun-sdk-python/2.1.1(Windows/7/AMD64;2.7.10) date: Tue, 09 Aug 2016 11:51:30 GMT authorization: OSS 2NeLUvmJFYbrj2Eb:BQCNOYdGglcAbhdHhqTfVNtLBow=''' response_text = '''HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 09 Aug 2016 11:51:30 GMT Content-Type: application/xml Content-Length: 100 Connection: keep-alive x-oss-request-id: 57A9C3C27FBF67E9BE686908 x-oss-server-time: 1 <?xml version="1.0" encoding="UTF-8"?> <ListLiveChannelResult> <Prefix>test</Prefix> <Marker></Marker> <MaxKeys>2</MaxKeys> <IsTruncated>true</IsTruncated> <NextMarker>test3</NextMarker> <LiveChannel> <Name>test1</Name> <Description>test1</Description> <Status>enabled</Status> <LastModified>2016-04-01T07:04:00.000Z</LastModified> <PublishUrls> <Url>rtmp://ming-oss-share.oss-cn-hangzhou.aliyuncs.com/live/test1</Url> </PublishUrls> <PlayUrls> <Url>http://ming-oss-share.oss-cn-hangzhou.aliyuncs.com/test1/playlist.m3u8</Url> </PlayUrls> </LiveChannel> <LiveChannel> <Name>test2</Name> <Description>test2</Description> <Status>disabled</Status> <LastModified>2016-04-01T08:04:50.000Z</LastModified> <PublishUrls> <Url>rtmp://ming-oss-share.oss-cn-hangzhou.aliyuncs.com/live/test2</Url> </PublishUrls> <PlayUrls> <Url>http://ming-oss-share.oss-cn-hangzhou.aliyuncs.com/test2/playlist.m3u8</Url> </PlayUrls> </LiveChannel> </ListLiveChannelResult>''' req_info = unittests.common.mock_response(do_request, response_text) result = unittests.common.bucket().list_live_channel('test', '', 2) self.assertRequest(req_info, request_text) self.assertEqual(result.prefix, 'test') self.assertEqual(result.marker, '') self.assertEqual(result.max_keys, 2) self.assertEqual(result.is_truncated, True) self.assertEqual(result.next_marker, 'test3') self.assertEqual(len(result.channels), 2) self.assertEqual(result.channels[0].name, 'test1') self.assertEqual(result.channels[0].description, 'test1') self.assertEqual(result.channels[0].status, 'enabled') self.assertEqual(result.channels[0].last_modified, iso8601_to_unixtime('2016-04-01T07:04:00.000Z')) self.assertEqual(result.channels[0].publish_url, 'rtmp://ming-oss-share.oss-cn-hangzhou.aliyuncs.com/live/test1') self.assertEqual(result.channels[0].play_url, 'http://ming-oss-share.oss-cn-hangzhou.aliyuncs.com/test1/playlist.m3u8') self.assertEqual(result.channels[1].name, 'test2') self.assertEqual(result.channels[1].description, 'test2') self.assertEqual(result.channels[1].status, 'disabled') self.assertEqual(result.channels[1].last_modified, iso8601_to_unixtime('2016-04-01T08:04:50.000Z')) self.assertEqual(result.channels[1].publish_url, 'rtmp://ming-oss-share.oss-cn-hangzhou.aliyuncs.com/live/test2') self.assertEqual(result.channels[1].play_url, 'http://ming-oss-share.oss-cn-hangzhou.aliyuncs.com/test2/playlist.m3u8')