agora-python-server-sdk 2.0.1__tar.gz → 2.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of agora-python-server-sdk might be problematic. Click here for more details.
- {agora_python_server_sdk-2.0.1/agora_python_server_sdk.egg-info → agora_python_server_sdk-2.0.2}/PKG-INFO +1 -1
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_local_user_observer.py +1 -1
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2/agora_python_server_sdk.egg-info}/PKG-INFO +1 -1
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora_python_server_sdk.egg-info/SOURCES.txt +1 -6
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/setup.py +1 -1
- agora_python_server_sdk-2.0.1/tests/test_conn.py +0 -30
- agora_python_server_sdk-2.0.1/tests/test_conn2.py +0 -73
- agora_python_server_sdk-2.0.1/tests/test_conn3.py +0 -95
- agora_python_server_sdk-2.0.1/tests/test_conn4.py +0 -90
- agora_python_server_sdk-2.0.1/tests/test_conn5.py +0 -68
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/MANIFEST.in +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/README.md +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/__init__.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_audio_frame_observer.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_rtc_connection_observer.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_video_encoded_frame_observer.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_video_frame_observer.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_base.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_parameter.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_service.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_encoded_frame_sender.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_frame_observer.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_pcm_data_sender.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_vad.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/globals.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_audio_track.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_user.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_user_observer.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_video_track.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/media_node_factory.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_audio_track.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_video_track.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/rtc_connection.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/rtc_connection_observer.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/video_encoded_frame_observer.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_observer.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_sender.py +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora_python_server_sdk.egg-info/dependency_links.txt +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora_python_server_sdk.egg-info/top_level.txt +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/pyproject.toml +0 -0
- {agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/setup.cfg +0 -0
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_local_user_observer.py
RENAMED
|
@@ -339,7 +339,7 @@ class RTCLocalUserObserverInner(ctypes.Structure):
|
|
|
339
339
|
#note: for video, one user can publish multiple video tracks, so the identifier is the remote_video_track_handle,
|
|
340
340
|
# its diff to audiotrack
|
|
341
341
|
self.local_user.set_remote_video_map(remote_video_track_handle, remote_video_track)
|
|
342
|
-
track_info = video_track_info.contents.
|
|
342
|
+
track_info = video_track_info.contents._convert_to_video_track_info()
|
|
343
343
|
self.local_user_observer.on_user_video_track_subscribed(self.local_user, user_id_str, track_info, remote_video_track)
|
|
344
344
|
|
|
345
345
|
def _on_user_video_track_state_changed(self, local_user_handle, user_id, remote_video_track_handle, state, reason, elapsed):
|
|
@@ -31,9 +31,4 @@ agora/rtc/video_frame_sender.py
|
|
|
31
31
|
agora_python_server_sdk.egg-info/PKG-INFO
|
|
32
32
|
agora_python_server_sdk.egg-info/SOURCES.txt
|
|
33
33
|
agora_python_server_sdk.egg-info/dependency_links.txt
|
|
34
|
-
agora_python_server_sdk.egg-info/top_level.txt
|
|
35
|
-
tests/test_conn.py
|
|
36
|
-
tests/test_conn2.py
|
|
37
|
-
tests/test_conn3.py
|
|
38
|
-
tests/test_conn4.py
|
|
39
|
-
tests/test_conn5.py
|
|
34
|
+
agora_python_server_sdk.egg-info/top_level.txt
|
|
@@ -47,7 +47,7 @@ class CustomInstallCommand(install):
|
|
|
47
47
|
|
|
48
48
|
setup(
|
|
49
49
|
name='agora_python_server_sdk',
|
|
50
|
-
version='2.0.
|
|
50
|
+
version='2.0.2',
|
|
51
51
|
description='A Python SDK for Agora Server',
|
|
52
52
|
long_description=open('README.md').read(),
|
|
53
53
|
long_description_content_type='text/markdown',
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import pytest
|
|
2
|
-
import asyncio
|
|
3
|
-
from unittest.mock import patch
|
|
4
|
-
|
|
5
|
-
class TestRTCConnection:
|
|
6
|
-
@pytest.mark.asyncio
|
|
7
|
-
async def test_connect_with_correct_uid(self):
|
|
8
|
-
# 创建模拟的 RTCConnection 对象
|
|
9
|
-
with patch('your_module.RTCConnection') as mock_rtc_connection:
|
|
10
|
-
# 配置模拟对象的行为
|
|
11
|
-
mock_rtc_connection.return_value.connect.return_value = 0 # 假设连接成功
|
|
12
|
-
mock_rtc_connection.return_value.register_observer.return_value = 0
|
|
13
|
-
|
|
14
|
-
# 创建测试用的 Observer
|
|
15
|
-
class TestObserver(IRTCConnectionObserver):
|
|
16
|
-
def __init__(self):
|
|
17
|
-
self.local_user_id = None
|
|
18
|
-
|
|
19
|
-
def on_connected(self, agora_rtc_conn, conn_info, reason):
|
|
20
|
-
self.local_user_id = conn_info.local_user_id
|
|
21
|
-
|
|
22
|
-
test_observer = TestObserver()
|
|
23
|
-
|
|
24
|
-
# 创建 RTCConnection 实例并调用 connect
|
|
25
|
-
rtc_conn = mock_rtc_connection()
|
|
26
|
-
rtc_conn.register_observer(test_observer)
|
|
27
|
-
await rtc_conn.connect('token', 'channel_id', 'my_uid')
|
|
28
|
-
|
|
29
|
-
# 断言 local_user_id
|
|
30
|
-
assert test_observer.local_user_id == 'my_uid'
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import pytest
|
|
3
|
-
|
|
4
|
-
import os
|
|
5
|
-
import sys
|
|
6
|
-
|
|
7
|
-
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
8
|
-
sdk_dir = os.path.dirname(script_dir)
|
|
9
|
-
# sdk_dir = os.path.dirname(os.path.dirname(script_dir))
|
|
10
|
-
if sdk_dir not in sys.path:
|
|
11
|
-
sys.path.insert(0, sdk_dir)
|
|
12
|
-
|
|
13
|
-
import time
|
|
14
|
-
import os
|
|
15
|
-
import sys
|
|
16
|
-
import datetime
|
|
17
|
-
from agora.rtc.agora_service import AgoraServiceConfig, AgoraService, AudioSubscriptionOptions, RTCConnConfig
|
|
18
|
-
from agora.rtc.rtc_connection_observer import IRTCConnectionObserver
|
|
19
|
-
from agora.rtc.rtc_connection import RTCConnection
|
|
20
|
-
from agora.rtc.agora_base import *
|
|
21
|
-
|
|
22
|
-
class MockObserver(IRTCConnectionObserver):
|
|
23
|
-
def __init__(self):
|
|
24
|
-
self.event = asyncio.Event()
|
|
25
|
-
self.conn_info = None
|
|
26
|
-
|
|
27
|
-
def on_connected(self, rtc_conn, conn_info, reason):
|
|
28
|
-
print("on_connected")
|
|
29
|
-
self.conn_info = conn_info
|
|
30
|
-
self.event.set() # 设置事件,表示回调已被调用
|
|
31
|
-
|
|
32
|
-
# 使用 pytest-asyncio 的异步测试
|
|
33
|
-
@pytest.mark.asyncio
|
|
34
|
-
async def test_connection_connect_with_observer():
|
|
35
|
-
# 创建RTCConnection实例
|
|
36
|
-
#---------------1. Init SDK
|
|
37
|
-
config = AgoraServiceConfig()
|
|
38
|
-
config.appid = "aab8b8f5a8cd4469a63042fcfafe7063"
|
|
39
|
-
config.log_path = "/Users/dingyusong/Downloads/tests_log/agorasdk.log"
|
|
40
|
-
|
|
41
|
-
agora_service = AgoraService()
|
|
42
|
-
agora_service.initialize(config)
|
|
43
|
-
|
|
44
|
-
#---------------2. Create Connection
|
|
45
|
-
con_config = RTCConnConfig(
|
|
46
|
-
client_role_type=ClientRoleType.CLIENT_ROLE_BROADCASTER,
|
|
47
|
-
channel_profile=ChannelProfileType.CHANNEL_PROFILE_LIVE_BROADCASTING,
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
connection = agora_service.create_rtc_connection(con_config)
|
|
51
|
-
|
|
52
|
-
# 创建MockObserver实例
|
|
53
|
-
observer = MockObserver()
|
|
54
|
-
|
|
55
|
-
# 注册观察者
|
|
56
|
-
connection.register_observer(observer)
|
|
57
|
-
print("before connect")
|
|
58
|
-
# 调用connect方法
|
|
59
|
-
sample_token = "aab8b8f5a8cd4469a63042fcfafe7063"
|
|
60
|
-
channel_id = "dummy_channel"
|
|
61
|
-
uid = "1"
|
|
62
|
-
connection.connect(sample_token, channel_id, uid)
|
|
63
|
-
|
|
64
|
-
print("after connect")
|
|
65
|
-
# 等待事件被设置,表示 on_connected 已被调用
|
|
66
|
-
await observer.event.wait()
|
|
67
|
-
|
|
68
|
-
# 验证 conn_info 是否被正确设置
|
|
69
|
-
assert observer.conn_info is not None
|
|
70
|
-
assert observer.conn_info.local_user_id == "dummy_uid"
|
|
71
|
-
|
|
72
|
-
# if __name__ == '__main__':
|
|
73
|
-
# test_connection_connect_with_observer()
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import pytest
|
|
3
|
-
|
|
4
|
-
import os
|
|
5
|
-
import sys
|
|
6
|
-
|
|
7
|
-
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
8
|
-
sdk_dir = os.path.dirname(script_dir)
|
|
9
|
-
# sdk_dir = os.path.dirname(os.path.dirname(script_dir))
|
|
10
|
-
if sdk_dir not in sys.path:
|
|
11
|
-
sys.path.insert(0, sdk_dir)
|
|
12
|
-
|
|
13
|
-
import time
|
|
14
|
-
import os
|
|
15
|
-
import sys
|
|
16
|
-
import datetime
|
|
17
|
-
from agora.rtc.agora_service import AgoraServiceConfig, AgoraService, AudioSubscriptionOptions, RTCConnConfig
|
|
18
|
-
from agora.rtc.rtc_connection_observer import IRTCConnectionObserver
|
|
19
|
-
from agora.rtc.rtc_connection import RTCConnection
|
|
20
|
-
from agora.rtc.agora_base import *
|
|
21
|
-
|
|
22
|
-
# class MockObserver(IRTCConnectionObserver):
|
|
23
|
-
# def __init__(self):
|
|
24
|
-
# self.event = asyncio.Event()
|
|
25
|
-
# self.conn_info = None
|
|
26
|
-
|
|
27
|
-
# def on_connected(self, rtc_conn, conn_info, reason):
|
|
28
|
-
# print("on_connected")
|
|
29
|
-
# self.conn_info = conn_info
|
|
30
|
-
# self.event.set() # 设置事件,表示回调已被调用
|
|
31
|
-
import pytest
|
|
32
|
-
from unittest.mock import MagicMock
|
|
33
|
-
import threading
|
|
34
|
-
import time
|
|
35
|
-
|
|
36
|
-
# 假设RTCConnection和IRTCConnectionObserver的定义在my_module.py中
|
|
37
|
-
# from my_module import RTCConnection, IRTCConnectionObserver
|
|
38
|
-
|
|
39
|
-
class MockObserver(IRTCConnectionObserver):
|
|
40
|
-
def __init__(self):
|
|
41
|
-
self.connected_info = None
|
|
42
|
-
self.event = threading.Event()
|
|
43
|
-
|
|
44
|
-
def on_connected(self, agora_rtc_conn, conn_info, reason):
|
|
45
|
-
print("Observer: on_connected called")
|
|
46
|
-
self.connected_info = conn_info
|
|
47
|
-
self.event.set() # 触发事件,表示已连接
|
|
48
|
-
print(f"Observer: Connected with local_user_id: {conn_info.local_user_id}")
|
|
49
|
-
|
|
50
|
-
# 测试用例
|
|
51
|
-
def test_on_connected_called_with_correct_user_id():
|
|
52
|
-
print("Test: Starting test_on_connected_called_with_correct_user_id")
|
|
53
|
-
# 创建一个RTCConnection实例
|
|
54
|
-
#---------------1. Init SDK
|
|
55
|
-
config = AgoraServiceConfig()
|
|
56
|
-
config.appid = "aab8b8f5a8cd4469a63042fcfafe7063"
|
|
57
|
-
config.log_path = "/Users/dingyusong/Downloads/tests_log/agorasdk.log"
|
|
58
|
-
|
|
59
|
-
agora_service = AgoraService()
|
|
60
|
-
agora_service.initialize(config)
|
|
61
|
-
|
|
62
|
-
#---------------2. Create Connection
|
|
63
|
-
con_config = RTCConnConfig(
|
|
64
|
-
client_role_type=ClientRoleType.CLIENT_ROLE_BROADCASTER,
|
|
65
|
-
channel_profile=ChannelProfileType.CHANNEL_PROFILE_LIVE_BROADCASTING,
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
connection = agora_service.create_rtc_connection(con_config)
|
|
69
|
-
|
|
70
|
-
# 创建一个具体的观察者实例
|
|
71
|
-
observer = MockObserver()
|
|
72
|
-
|
|
73
|
-
# 注册观察者
|
|
74
|
-
connection.register_observer(observer)
|
|
75
|
-
|
|
76
|
-
print("before connect")
|
|
77
|
-
# 调用connect方法
|
|
78
|
-
sample_token = "aab8b8f5a8cd4469a63042fcfafe7063"
|
|
79
|
-
channel_id = "dummy_channel"
|
|
80
|
-
uid = "1"
|
|
81
|
-
connection.connect(sample_token, channel_id, uid)
|
|
82
|
-
|
|
83
|
-
print("after connect")
|
|
84
|
-
|
|
85
|
-
# 等待 on_connected 被调用
|
|
86
|
-
observer.event.wait(timeout=5) # 等待最多5秒
|
|
87
|
-
|
|
88
|
-
print("after connect2222")
|
|
89
|
-
# 验证 local_user_id 是否与 uid 一致
|
|
90
|
-
assert observer.connected_info is not None, "on_connected should have been called"
|
|
91
|
-
assert observer.connected_info.local_user_id == uid, "local_user_id should match the provided uid"
|
|
92
|
-
|
|
93
|
-
# 运行测试
|
|
94
|
-
# if __name__ == "__main__":
|
|
95
|
-
# pytest.main()
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import pytest
|
|
3
|
-
|
|
4
|
-
import os
|
|
5
|
-
import sys
|
|
6
|
-
|
|
7
|
-
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
8
|
-
sdk_dir = os.path.dirname(script_dir)
|
|
9
|
-
# sdk_dir = os.path.dirname(os.path.dirname(script_dir))
|
|
10
|
-
if sdk_dir not in sys.path:
|
|
11
|
-
sys.path.insert(0, sdk_dir)
|
|
12
|
-
|
|
13
|
-
import time
|
|
14
|
-
import os
|
|
15
|
-
import sys
|
|
16
|
-
import datetime
|
|
17
|
-
import threading
|
|
18
|
-
|
|
19
|
-
from agora.rtc.agora_service import AgoraServiceConfig, AgoraService, AudioSubscriptionOptions, RTCConnConfig
|
|
20
|
-
from agora.rtc.rtc_connection_observer import IRTCConnectionObserver
|
|
21
|
-
from agora.rtc.rtc_connection import RTCConnection
|
|
22
|
-
from agora.rtc.agora_base import *
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class MockObserver(IRTCConnectionObserver):
|
|
26
|
-
def __init__(self):
|
|
27
|
-
self.connected_info = None
|
|
28
|
-
self.event = asyncio.Event()
|
|
29
|
-
|
|
30
|
-
def on_connected(self, agora_rtc_conn, conn_info, reason):
|
|
31
|
-
print("Observer: on_connected called")
|
|
32
|
-
self.connected_info = conn_info
|
|
33
|
-
self.event.set() # 触发事件,表示已连接
|
|
34
|
-
print(f"Observer: Connected with local_user_id: {conn_info.local_user_id}")
|
|
35
|
-
print("Observer: thread id", threading.get_ident())
|
|
36
|
-
|
|
37
|
-
# 测试用例
|
|
38
|
-
@pytest.mark.asyncio
|
|
39
|
-
async def test_on_connected_called_with_correct_user_id():
|
|
40
|
-
print("Test: Starting test_on_connected_called_with_correct_user_id")
|
|
41
|
-
# 创建一个RTCConnection实例
|
|
42
|
-
#---------------1. Init SDK
|
|
43
|
-
config = AgoraServiceConfig()
|
|
44
|
-
config.appid = "aab8b8f5a8cd4469a63042fcfafe7063"
|
|
45
|
-
config.log_path = "/Users/dingyusong/Downloads/tests_log/agorasdk.log"
|
|
46
|
-
|
|
47
|
-
agora_service = AgoraService()
|
|
48
|
-
agora_service.initialize(config)
|
|
49
|
-
|
|
50
|
-
#---------------2. Create Connection
|
|
51
|
-
con_config = RTCConnConfig(
|
|
52
|
-
client_role_type=ClientRoleType.CLIENT_ROLE_BROADCASTER,
|
|
53
|
-
channel_profile=ChannelProfileType.CHANNEL_PROFILE_LIVE_BROADCASTING,
|
|
54
|
-
)
|
|
55
|
-
|
|
56
|
-
connection = agora_service.create_rtc_connection(con_config)
|
|
57
|
-
|
|
58
|
-
# 创建一个具体的观察者实例
|
|
59
|
-
observer = MockObserver()
|
|
60
|
-
|
|
61
|
-
# 注册观察者
|
|
62
|
-
connection.register_observer(observer)
|
|
63
|
-
|
|
64
|
-
print("before connect")
|
|
65
|
-
# 调用connect方法
|
|
66
|
-
sample_token = "aab8b8f5a8cd4469a63042fcfafe7063"
|
|
67
|
-
channel_id = "dummy_channel"
|
|
68
|
-
uid = "1"
|
|
69
|
-
connection.connect(sample_token, channel_id, uid)
|
|
70
|
-
print("connect: thread id", threading.get_ident())
|
|
71
|
-
print("after connect")
|
|
72
|
-
|
|
73
|
-
# 等待 on_connected 被调用
|
|
74
|
-
# observer.event.wait() # 等待最多5秒
|
|
75
|
-
await observer.event.wait() # 等待事件被设置
|
|
76
|
-
print("after connect2222")
|
|
77
|
-
|
|
78
|
-
# try:
|
|
79
|
-
# await asyncio.wait_for(observer.event.wait(), timeout=5)
|
|
80
|
-
# except asyncio.TimeoutError:
|
|
81
|
-
# assert False, "on_connected was not called within the timeout period"
|
|
82
|
-
|
|
83
|
-
print("after connect3333")
|
|
84
|
-
# 验证 local_user_id 是否与 uid 一致
|
|
85
|
-
assert observer.connected_info is not None, "on_connected should have been called"
|
|
86
|
-
assert observer.connected_info.local_user_id == uid, "local_user_id should match the provided uid"
|
|
87
|
-
|
|
88
|
-
# 运行测试
|
|
89
|
-
# if __name__ == "__main__":
|
|
90
|
-
# pytest.main()
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import pytest
|
|
3
|
-
import os
|
|
4
|
-
import sys
|
|
5
|
-
|
|
6
|
-
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
7
|
-
sdk_dir = os.path.dirname(script_dir)
|
|
8
|
-
if sdk_dir not in sys.path:
|
|
9
|
-
sys.path.insert(0, sdk_dir)
|
|
10
|
-
|
|
11
|
-
from agora.rtc.agora_service import AgoraServiceConfig, AgoraService, RTCConnConfig
|
|
12
|
-
from agora.rtc.rtc_connection_observer import IRTCConnectionObserver
|
|
13
|
-
from agora.rtc.agora_base import *
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class MockObserver(IRTCConnectionObserver):
|
|
17
|
-
def __init__(self):
|
|
18
|
-
self.connected_info = None
|
|
19
|
-
self.event = asyncio.Event()
|
|
20
|
-
|
|
21
|
-
def on_connected(self, agora_rtc_conn, conn_info, reason):
|
|
22
|
-
print("Observer: on_connected called")
|
|
23
|
-
self.connected_info = conn_info
|
|
24
|
-
self.event.set() # 触发事件,表示已连接
|
|
25
|
-
print(f"Observer: Connected with local_user_id: {conn_info.local_user_id}")
|
|
26
|
-
|
|
27
|
-
# 测试用例
|
|
28
|
-
@pytest.mark.asyncio
|
|
29
|
-
async def test_on_connected_called_with_correct_user_id():
|
|
30
|
-
print("Test: Starting test_on_connected_called_with_correct_user_id")
|
|
31
|
-
# 创建一个RTCConnection实例
|
|
32
|
-
#---------------1. Init SDK
|
|
33
|
-
config = AgoraServiceConfig()
|
|
34
|
-
config.appid = "aab8"
|
|
35
|
-
config.log_path = "/Users/dd/Downloads/tests_log/agorasdk.log"
|
|
36
|
-
|
|
37
|
-
agora_service = AgoraService()
|
|
38
|
-
agora_service.initialize(config)
|
|
39
|
-
|
|
40
|
-
#---------------2. Create Connection
|
|
41
|
-
con_config = RTCConnConfig(
|
|
42
|
-
client_role_type=ClientRoleType.CLIENT_ROLE_BROADCASTER,
|
|
43
|
-
channel_profile=ChannelProfileType.CHANNEL_PROFILE_LIVE_BROADCASTING,
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
-
connection = agora_service.create_rtc_connection(con_config)
|
|
47
|
-
|
|
48
|
-
# 创建一个具体的观察者实例
|
|
49
|
-
observer = MockObserver()
|
|
50
|
-
|
|
51
|
-
# 注册观察者
|
|
52
|
-
connection.register_observer(observer)
|
|
53
|
-
|
|
54
|
-
print("before connect")
|
|
55
|
-
# 调用connect方法
|
|
56
|
-
sample_token = "aab8"
|
|
57
|
-
channel_id = "dummy_channel"
|
|
58
|
-
uid = "1"
|
|
59
|
-
connection.connect(sample_token, channel_id, uid)
|
|
60
|
-
|
|
61
|
-
print("after connect")
|
|
62
|
-
|
|
63
|
-
await observer.event.wait()
|
|
64
|
-
|
|
65
|
-
print("after connect3333")
|
|
66
|
-
assert observer.connected_info is not None, "on_connected should have been called"
|
|
67
|
-
assert observer.connected_info.local_user_id == uid, "local_user_id should match the provided uid"
|
|
68
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_audio_frame_observer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/_video_frame_observer.py
RENAMED
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/agora_parameter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_frame_observer.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/audio_pcm_data_sender.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_audio_track.py
RENAMED
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_user_observer.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/local_video_track.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/media_node_factory.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_audio_track.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/remote_video_track.py
RENAMED
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/rtc_connection_observer.py
RENAMED
|
File without changes
|
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_observer.py
RENAMED
|
File without changes
|
{agora_python_server_sdk-2.0.1 → agora_python_server_sdk-2.0.2}/agora/rtc/video_frame_sender.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|