summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwangqi <wangq.fnst@cn.fujitsu.com>2021-04-03 10:39:59 +0800
committerJan-Simon Möller <jsmoeller@linuxfoundation.org>2021-11-03 15:11:21 +0100
commit19d6e286e192010f0d62021211ba6985165e12fc (patch)
tree96bae212e8232a980dd9b3ffd866bdfe852240a9
parentaf36a41a12ea89275ccc36590fb25693f04e1153 (diff)
Add testcase of agl-service-mediaplayer
Bug-AGL: SPEC-4042 Signed-off-by: wangqi <wangq.fnst@cn.fujitsu.com> Change-Id: I1a4f10a24fee0fc3d7d2e221c4a64c9bbe21c08e
-rw-r--r--pyagl/pytest.ini1
-rw-r--r--pyagl/tests/test_mediaplayer.py70
2 files changed, 71 insertions, 0 deletions
diff --git a/pyagl/pytest.ini b/pyagl/pytest.ini
index 8794024..83d1f53 100644
--- a/pyagl/pytest.ini
+++ b/pyagl/pytest.ini
@@ -14,6 +14,7 @@ markers =
gps: agl-service-gps tests
homescreen: agl-service-homescreen tests
mediascanner: agl-service-mediascanner tests
+ mediaplayer: agl-service-mediaplayer tests
network: agl-service-network tests
nfc: agl-service-nfc tests
radio: agl-service-radio tests
diff --git a/pyagl/tests/test_mediaplayer.py b/pyagl/tests/test_mediaplayer.py
new file mode 100644
index 0000000..db2d069
--- /dev/null
+++ b/pyagl/tests/test_mediaplayer.py
@@ -0,0 +1,70 @@
+# Copyright (C) 2021 Fujitsu
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import asyncio
+import os
+import pytest
+import logging
+from pyagl.services.base import AFBResponse, AFBT
+
+from pyagl.services.mediaplayer import MediaPlayerService as mps
+pytestmark = [pytest.mark.asyncio, pytest.mark.mediaplayer]
+
+
+@pytest.fixture(scope='module')
+def event_loop():
+ loop = asyncio.get_event_loop()
+ yield loop
+
+@pytest.fixture(scope='module')
+async def service():
+ address = os.environ.get('AGL_TGT_IP', 'localhost')
+ port = os.environ.get('AGL_TGT_PORT', None)
+ svc = await mps(ip=address, port=port)
+ yield svc
+ await svc.websocket.close()
+
+
+async def test_playlist_verb(event_loop, service: mps):
+ msgid = await service.playlist()
+ resp = await service.afbresponse()
+ assert resp.status == 'success'
+
+
+async def test_control_play(event_loop, service: mps):
+ msgid = await service.control(name='play')
+ resp = await service.afbresponse()
+ assert resp.status == 'success'
+
+
+async def test_control_pause(event_loop, service: mps):
+ msgid = await service.control(name='pause')
+ resp = await service.afbresponse()
+ assert resp.status == 'success'
+
+
+async def test_subscribe_verb(event_loop, service: mps):
+ msgid = await service.subscribe('playlist')
+ resp = await service.afbresponse()
+ assert resp.status == 'success'
+ event = await service.afbresponse()
+ assert event.type == AFBT.EVENT
+ assert event.api == f'{service.api}/playlist'
+
+
+async def test_unsubscribe_verb(event_loop, service: mps):
+ msgid = await service.unsubscribe('playlist')
+ resp = await service.afbresponse()
+ assert resp.status == 'success'
+