Skip to content

Commit

Permalink
[qatl] added method name 'tl.doesUserExist'
Browse files Browse the repository at this point in the history
  • Loading branch information
crypto netzulo committed Mar 18, 2018
1 parent bda3f8d commit 88780fd
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 1 deletion.
6 changes: 6 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -236,3 +236,9 @@ Usage ( *XMLRPC* )

* **XMLRPC**: *call to method named* '*tl.getTestCaseIDByName*'
* **Description** : get test case filtered by name

**api_user_exist**
+++++++++++++++++++++++

* **XMLRPC**: *call to method named* '*tl.doesUserExist*'
* **Description** : check if user name it's valid
3 changes: 2 additions & 1 deletion qatestlink/configs/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
"build_id_one": 1,
"build_name_one": "issue1",
"build_id_two": 2,
"build_name_two": "issue2"
"build_name_two": "issue2",
"user_name": "qacode"
}
}
}
22 changes: 22 additions & 0 deletions qatestlink/core/testlink_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -426,3 +426,25 @@ def api_tcase_by_name(self, tcase_name, dev_key=None):
properties = res_param.get(
'array')['data']['value']['struct']['member']
return TCase(properties)

def api_user_exist(self, user_name, dev_key=None):
"""Call to method named 'tl.doesUserExist' for testlink XMLRPC
Keyword Arguments:
user_name {str} -- NAME of remote testlink user
dev_key {str} -- string of developer key provided by Testlink
(default: {value obtained from JSON settings file})
Returns:
bool -- check if user name it's valid for Testlink
"""
if not dev_key:
dev_key = self._settings.get('dev_key')
req_data = self._xml_manager.req_user_exist(dev_key, user_name)
res = self._conn.post(self._xml_manager.headers, req_data)
res_dict = self._xml_manager.parse_response(res)
res_value = res_dict.get(
'methodResponse')['params']['param']['value']
if res_value.get('boolean'):
return bool(res_value.get('boolean'))
self._xml_manager.parse_errors(res_dict)
27 changes: 27 additions & 0 deletions qatestlink/core/xmls/xmlrpc_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -624,3 +624,30 @@ def req_tcase_by_name(self, dev_key, tcase_name):
xml = dicttoxml(
self.req_dict, custom_root='methodCall', attr_type=False)
return xml

def req_user_exist(self, dev_key, user_name):
"""String xml object ready to use on API call
Arguments:
dev_key {str} -- string for Testlink API_KEY
user_name {str} -- NAME of Testlink user
Returns:
str -- XML request with parsed params
"""
self.req_dict.update({
"methodName": RouteType.TLINK_USER_EXIST.value
})
self.req_dict.update({
"params": {
"struct": {
"member": [
{"name": "devKey", "value": dev_key},
{"name": "user", "value": user_name}
]
}
}
})
xml = dicttoxml(
self.req_dict, custom_root='methodCall', attr_type=False)
return xml
7 changes: 7 additions & 0 deletions tests/unitaries/suite_002_methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,13 @@ def test_016_method_tcase_byname(self):
self.assertEquals(
tcase.name, DATA['tcase_name'])

@skipIf(SKIP, SKIP_MESSAGE)
def test_017_method_user_exist(self):
"""TODO: doc method"""
is_user = self.testlink_manager.api_user_exist(
DATA['user_name'])
self.assertTrue(is_user)


class TestMethodsRaises(TestCase):
"""Test suite for tests methods
Expand Down

0 comments on commit 88780fd

Please sign in to comment.