| """ |
| Copyright 2013 Appurify, Inc |
| All rights reserved |
| |
| 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. |
| """ |
| from .utils import get, post |
| |
| #################### |
| ## Access Token API |
| #################### |
| |
| def access_token_generate(api_key, api_secret, access_token_tag=None): |
| """Generate an access token, given an api key and secret""" |
| data = {'key': api_key, 'secret': api_secret} |
| if type(access_token_tag) == list: data['tags'] = access_token_tag |
| return post('access_token/generate', data) |
| |
| def access_token_list(api_key, api_secret, page_no=1, page_size=10): |
| """Retrieve a list of access tokens for a particular key/secret pair""" |
| return get('access_token/list', {'key':api_key, 'secret':api_secret, 'page_no':page_no, 'page_size':page_size}) |
| |
| def access_token_usage(api_key, api_secret, access_token, page_no=1, page_size=10): |
| """ DEPRECATED. Will be removed in future versions. |
| Get details on device time used for a particular key/secret pair |
| """ |
| return get('access_token/usage', {'key':api_key, 'secret':api_secret, 'access_token':access_token, 'page_no':page_no, 'page_size':page_size}) |
| |
| def access_token_validate(access_token): |
| """Verify that an access token is valid and retrieve the remaining ttl for that token""" |
| return post('access_token/validate', {'access_token':access_token}) |
| |
| def access_token_revoke(access_token): |
| """Revoke access token.""" |
| return post('access_token/revoke', {'access_token':access_token}) |
| |
| ############## |
| ## Device API |
| ############## |
| |
| def devices_list(access_token): |
| """Get list of devices""" |
| return get('devices/list', {'access_token':access_token}) |
| |
| def devices_config_list(access_token): |
| """Get available configuration option for devices""" |
| return get('devices/config/list', {'access_token':access_token}) |
| |
| # TODO: access configuration parameters and pass it on |
| def devices_config(access_token, device_id): |
| """Fetch configuration of specific device id""" |
| return post('devices/config', {'access_token':access_token, 'device_id':device_id}) |
| |
| def devices_config_networks_list(access_token): |
| return get('devices/config/networks/list', {'access_token':access_token}) |
| |
| ########### |
| ## App API |
| ########### |
| |
| def apps_list(access_token): |
| return get('apps/list', {'access_token':access_token}) |
| |
| def apps_upload(access_token, source, source_type, type=None, name=None, webapp_url=None): |
| files = None if source_type == 'url' else {'source':source} |
| data = {'access_token':access_token, 'source_type':source_type} |
| if source_type == 'url': data['source'] = source |
| if type: data['app_test_type'] = type |
| if name: data['name'] = name |
| if webapp_url: data['url'] = webapp_url |
| return post('apps/upload', data, files) |
| |
| ############ |
| ## Test API |
| ############ |
| |
| def tests_list(access_token): |
| return get('tests/list', {'access_token':access_token}) |
| |
| def tests_upload(access_token, test_source, test_source_type, test_type, app_id = None): |
| files = None if test_source_type == 'url' else {'source':test_source} |
| data = {'access_token':access_token, 'source_type':test_source_type, 'test_type': test_type} |
| if app_id: |
| data['app_id'] = app_id |
| if test_source_type == 'url': data['source'] = test_source |
| return post('tests/upload', data, files) |
| |
| def tests_run(access_token, device_type_id, app_id, test_id, device_id=None): |
| return post('tests/run', {'access_token':access_token, 'device_type_id':device_type_id, 'app_id':app_id, 'test_id':test_id, 'device_id':device_id, 'async': '1'}) |
| |
| def tests_check_result(access_token, test_run_id): |
| return get('tests/check', {'access_token':access_token, 'test_run_id': test_run_id}) |
| |
| def tests_abort(access_token, test_run_id, reason='Not specified.'): |
| return post('tests/abort', {'access_token':access_token, 'test_run_id': test_run_id, 'reason':reason}) |
| |
| ################### |
| ## Config file API |
| ################### |
| |
| def config_upload(access_token, config_src, test_id): |
| """Upload a configuration file to associate with a test.""" |
| data, files = {'access_token':access_token, 'test_id': test_id}, {'source':config_src} |
| return post('tests/config/upload', data, files) |