Skip to content

Commit 146bfd2

Browse files
committed
refactor
1 parent c100269 commit 146bfd2

File tree

2 files changed

+68
-10
lines changed

2 files changed

+68
-10
lines changed

device_lab/services/selenium_grid.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ def get_all_hubs_url(self):
7070
return list(hub.url for hub in hubs)
7171

7272
def get_available_capabilities(self, platform_name,
73-
platform_version, min_platform_version, max_platform_version):
73+
platform_version=None, min_platform_version=None, max_platform_version=None):
7474
query = Observable.from_(self._capabilities) \
7575
.filter(lambda c: platform_name is None or c['capabilities']['platformName'] == platform_name) \
76-
.filter(lambda c: len(platform_version) == 0 or c['capabilities']['version'] in platform_version) \
76+
.filter(lambda c: not platform_version or c['capabilities']['version'] in platform_version) \
7777
.filter(lambda c: min_platform_version is None or c['capabilities']['version'] >= min_platform_version) \
7878
.filter(lambda c: max_platform_version is None or c['capabilities']['version'] <= max_platform_version)
7979
candidates = list(query.to_blocking())

device_lab/tests/test_selenium_grid.py

Lines changed: 66 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import tornado.testing
33

44
from utils.clients.selenium_grid import SeleniumGridClient
5-
from services.selenium_grid import selenium_grid_service
5+
from services.selenium_grid import SeleniumGridService
66
from services.selenium_grid import SimpleLockManager
77
from time import sleep
88

@@ -17,13 +17,68 @@ def test_get_devices(self):
1717

1818

1919
class TestSeleniumGridService(unittest.TestCase):
20-
def test_query_deivces1(self):
21-
selenium_grid_service.update_hubs_detail(HUBS_DETAIL)
22-
selenium_grid_service.get_available_capabilities(platform_name='ios')
20+
def setUp(self):
21+
self.service = SeleniumGridService()
22+
self.service.set_capabilities([
23+
{
24+
"capabilities": {
25+
"platformName": "ios",
26+
"version": "1",
27+
"UDID": "udid1",
28+
},
29+
"appium_url": "appium_url1",
30+
},
31+
{
32+
"capabilities": {
33+
"platformName": "ios",
34+
"version": "2",
35+
"UDID": "udid2",
36+
},
37+
"appium_url": "appium_url1",
38+
},
39+
{
40+
"capabilities": {
41+
"platformName": "ios",
42+
"version": "1",
43+
"UDID": "udid1",
44+
},
45+
"appium_url": "appium_url2",
46+
},
47+
{
48+
"capabilities": {
49+
"platformName": "ios",
50+
"version": "2",
51+
"UDID": "udid2",
52+
},
53+
"appium_url": "appium_url2",
54+
},
55+
])
56+
57+
def test_query_capabilities(self):
58+
caps = self.service.get_available_capabilities(platform_name='ios')
59+
expected = [{'capabilities': {'platformName': 'ios', 'version': '1', 'UDID': 'udid1'}, 'appium_url': 'appium_url1'},
60+
{'capabilities': {'platformName': 'ios', 'version': '2', 'UDID': 'udid2'}, 'appium_url': 'appium_url2'}]
61+
self.assertEqual(expected, caps)
62+
63+
caps = self.service.get_available_capabilities(platform_name='ios', platform_version=['1'])
64+
expected = [{'capabilities': {'platformName': 'ios', 'version': '1', 'UDID': 'udid1'}, 'appium_url': 'appium_url1'}]
65+
self.assertEqual(expected, caps)
66+
67+
caps = self.service.get_available_capabilities(platform_name='ios', min_platform_version='3')
68+
self.assertEqual([], caps)
2369

24-
def test_query_devices2(self):
25-
selenium_grid_service.update_hubs_detail(HUBS_DETAIL)
26-
selenium_grid_service.get_available_capabilities(platform_name='ios', platform_version='11.2.6')
70+
caps = self.service.get_available_capabilities(platform_name='ios', max_platform_version='0')
71+
self.assertEqual([], caps)
72+
73+
caps = self.service.get_available_capabilities(platform_name='ios', min_platform_version='0')
74+
expected = [{'capabilities': {'platformName': 'ios', 'version': '1', 'UDID': 'udid1'}, 'appium_url': 'appium_url1'},
75+
{'capabilities': {'platformName': 'ios', 'version': '2', 'UDID': 'udid2'}, 'appium_url': 'appium_url2'}]
76+
self.assertEqual(expected, caps)
77+
78+
caps = self.service.get_available_capabilities(platform_name='ios', max_platform_version='3')
79+
expected = [{'capabilities': {'platformName': 'ios', 'version': '1', 'UDID': 'udid1'}, 'appium_url': 'appium_url1'},
80+
{'capabilities': {'platformName': 'ios', 'version': '2', 'UDID': 'udid2'}, 'appium_url': 'appium_url2'}]
81+
self.assertEqual(expected, caps)
2782

2883

2984
class TestSimpleLockManager(unittest.TestCase):
@@ -52,7 +107,10 @@ def test_lock_expired(self):
52107
self.assertFalse(self.lock.is_lock('lock1'))
53108

54109

55-
HUBS_DETAIL = {'http://10.32.52.92:4444/': {'nodes': [{'class': 'DefaultRemoteProxy',
110+
111+
112+
# this dto must be refactored !
113+
_GRID_RAW_DATA = {'http://10.32.52.92:4444/': {'nodes': [{'class': 'DefaultRemoteProxy',
56114
'id': 'http://10.32.60.38:4723',
57115
'protocols': {'web_driver': {'browsers': {'': {'10.1': [{'busy': False,
58116
'capabilities': {'UDID': 'F0F743D2-839B-4809-B404-B19AB4CDD31D',

0 commit comments

Comments
 (0)