test_tutorials.py 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. # test_tutorials.py/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro).
  2. # This copyright was auto-generated on Wed Jan 5 23:22:13 UTC 2022
  3. # Simply run each demo for some naive sanity checking
  4. import time
  5. from pathlib import Path
  6. import pytest
  7. from tutorial_modules.tutorial_1_connect_ble.ble_connect import main as ble_connect
  8. from tutorial_modules.tutorial_2_send_ble_commands.ble_command_load_group import (
  9. main as ble_command_load_group,
  10. )
  11. from tutorial_modules.tutorial_2_send_ble_commands.ble_command_set_fps import (
  12. main as ble_command_set_fps,
  13. )
  14. from tutorial_modules.tutorial_2_send_ble_commands.ble_command_set_resolution import (
  15. main as ble_command_set_resolution,
  16. )
  17. from tutorial_modules.tutorial_2_send_ble_commands.ble_command_set_shutter import (
  18. main as ble_command_set_shutter,
  19. )
  20. from tutorial_modules.tutorial_3_parse_ble_tlv_responses.ble_command_get_hardware_info import (
  21. main as ble_get_hardware_info,
  22. )
  23. from tutorial_modules.tutorial_3_parse_ble_tlv_responses.ble_command_get_version import (
  24. main as ble_command_get_version,
  25. )
  26. from tutorial_modules.tutorial_4_ble_queries.ble_query_poll_multiple_setting_values import (
  27. main as ble_query_poll_multiple_setting_values,
  28. )
  29. from tutorial_modules.tutorial_4_ble_queries.ble_query_poll_resolution_value import (
  30. main as ble_query_poll_resolution_value,
  31. )
  32. from tutorial_modules.tutorial_4_ble_queries.ble_query_register_resolution_value_updates import (
  33. main as ble_query_register_resolution_value_updates,
  34. )
  35. from tutorial_modules.tutorial_5_ble_protobuf.set_turbo_mode import (
  36. main as set_turbo_mode,
  37. )
  38. from tutorial_modules.tutorial_6_connect_wifi.connect_as_sta import main as connect_sta
  39. from tutorial_modules.tutorial_6_connect_wifi.enable_wifi_ap import main as wifi_enable
  40. from tutorial_modules.tutorial_7_send_wifi_commands.wifi_command_get_media_list import (
  41. main as wifi_command_get_media_list,
  42. )
  43. from tutorial_modules.tutorial_7_send_wifi_commands.wifi_command_get_state import (
  44. main as wifi_command_get_state,
  45. )
  46. from tutorial_modules.tutorial_7_send_wifi_commands.wifi_command_load_group import (
  47. main as wifi_command_load_group,
  48. )
  49. from tutorial_modules.tutorial_7_send_wifi_commands.wifi_command_preview_stream import (
  50. main as wifi_command_preview_stream,
  51. )
  52. from tutorial_modules.tutorial_7_send_wifi_commands.wifi_command_set_resolution import (
  53. main as wifi_command_set_resolution,
  54. )
  55. from tutorial_modules.tutorial_7_send_wifi_commands.wifi_command_set_shutter import (
  56. main as wifi_command_set_shutter,
  57. )
  58. from tutorial_modules.tutorial_8_camera_media_list.wifi_media_download_file import (
  59. main as wifi_media_download_file,
  60. )
  61. from tutorial_modules.tutorial_8_camera_media_list.wifi_media_get_gpmf import (
  62. main as wifi_media_get_gpmf,
  63. )
  64. from tutorial_modules.tutorial_8_camera_media_list.wifi_media_get_screennail import (
  65. main as wifi_media_get_screennail,
  66. )
  67. from tutorial_modules.tutorial_8_camera_media_list.wifi_media_get_thumbnail import (
  68. main as wifi_media_get_thumbnail,
  69. )
  70. from tutorial_modules.tutorial_9_cohn.communicate_via_cohn import (
  71. main as communicate_via_cohn,
  72. )
  73. from tutorial_modules.tutorial_9_cohn.provision_cohn import main as provision_cohn
  74. @pytest.fixture(scope="module")
  75. def connect_wifi():
  76. print("\n\nPress enter when WiFi is connected to GoPro camera...\n")
  77. input("")
  78. yield
  79. class TestTutorial1ConnectBle:
  80. @pytest.mark.asyncio
  81. async def test_ble_connect(self):
  82. await ble_connect(None)
  83. class TestTutorial2SendBleCommands:
  84. @pytest.mark.asyncio
  85. async def test_ble_command_load_group(self):
  86. await ble_command_load_group(None)
  87. @pytest.mark.asyncio
  88. async def test_ble_command_set_resolution(self):
  89. await ble_command_set_resolution(None)
  90. @pytest.mark.asyncio
  91. async def test_ble_command_set_fps(self):
  92. await ble_command_set_fps(None)
  93. @pytest.mark.asyncio
  94. async def test_ble_command_set_shutter(self):
  95. await ble_command_set_shutter(None)
  96. class TestTutorial3ParseBleTlvResponses:
  97. @pytest.mark.asyncio
  98. async def test_ble_command_get_version(self):
  99. await ble_command_get_version(None)
  100. @pytest.mark.asyncio
  101. async def test_ble_get_hardware_info(self):
  102. await ble_get_hardware_info(None)
  103. class TestTutorial4BleQueries:
  104. @pytest.mark.asyncio
  105. async def test_ble_query_poll_multiple_setting_values(self):
  106. await ble_query_poll_multiple_setting_values(None)
  107. @pytest.mark.asyncio
  108. async def test_ble_query_poll_resolution_value(self):
  109. await ble_query_poll_resolution_value(None)
  110. @pytest.mark.asyncio
  111. async def test_ble_query_register_resolution_value_updates(self):
  112. await ble_query_register_resolution_value_updates(None)
  113. class TestTutorial5ConnectWifi:
  114. @pytest.mark.asyncio
  115. async def test_wifi_enable(self):
  116. await wifi_enable(None, timeout=1)
  117. class TestTutorial6BleProtobuf:
  118. @pytest.mark.asyncio
  119. async def test_set_turbo_mode(self):
  120. await set_turbo_mode(None)
  121. class TestTutorial9Cohn:
  122. @pytest.mark.asyncio
  123. async def test_connect_sta(self, pytestconfig):
  124. await connect_sta(pytestconfig.getoption("ssid"), pytestconfig.getoption("password"), None)
  125. @pytest.mark.asyncio
  126. async def test_cohn(self, pytestconfig):
  127. credentials = await provision_cohn(
  128. pytestconfig.getoption("ssid"), pytestconfig.getoption("password"), None, Path("cohn.crt")
  129. )
  130. assert credentials
  131. await communicate_via_cohn(credentials.ip_address, credentials.username, credentials.password, Path("cohn.crt"))
  132. class TestTutorial7SendWifiCommands:
  133. def test_wifi_command_get_media_list(self, connect_wifi):
  134. wifi_command_get_media_list()
  135. def test_wifi_command_get_state(self, connect_wifi):
  136. wifi_command_get_state()
  137. def test_wifi_command_load_group(self, connect_wifi):
  138. wifi_command_load_group()
  139. def test_wifi_command_set_resolution(self, connect_wifi):
  140. wifi_command_set_resolution()
  141. def test_wifi_command_preview_stream(self, connect_wifi):
  142. wifi_command_preview_stream()
  143. def test_wifi_command_set_shutter(self, connect_wifi):
  144. wifi_command_set_shutter()
  145. time.sleep(2) # wait for camera to be ready
  146. class TestTutorial8CameraMediaList:
  147. def test_wifi_media_download_file(self, connect_wifi):
  148. wifi_media_download_file()
  149. def test_wifi_media_get_gpmf(self, connect_wifi):
  150. wifi_media_get_gpmf()
  151. def test_wifi_media_get_screennail(self, connect_wifi):
  152. wifi_media_get_screennail()
  153. def test_wifi_media_get_thumbnail(self, connect_wifi):
  154. wifi_media_get_thumbnail()