def testPollTimeoutCode(self): mockRequestGet.count = -20 client = AppurifyClient(api_key="test_key", api_secret="test_secret", test_type="ios_webrobot", app_src=None, test_src=None, url="www.yahoo.com", timeout_sec=0.2, poll_every=0.1) result_code = client.main() self.assertEqual(result_code, 3, "Main should execute and return error code")
def testDefaultPollTimeoutCode(self): old_env = os.environ.get('APPURIFY_API_TIMEOUT', None) try: os.environ['APPURIFY_API_TIMEOUT'] = '0.2' mockRequestGet.count = -20 client = AppurifyClient(access_token="authenticated", poll_every=0.1) result_code = client.main() self.assertEqual(result_code, 1, "Main should execute and return error code with default timeout") finally: if old_env: os.environ['APPURIFY_API_TIMEOUT'] = str(old_env)
def testDefaultPollTimeout(self): old_env = os.environ.get('APPURIFY_API_TIMEOUT', None) try: os.environ['APPURIFY_API_TIMEOUT'] = '0.2' mockRequestGet.count = -20 client = AppurifyClient(access_token="authenticated", poll_every=0.1) with self.assertRaises(AppurifyClientError): client.pollTestResult("test_test_run_id", 0.2) finally: if old_env: os.environ['APPURIFY_API_TIMEOUT'] = str(old_env)
def testMainPass(self): mockRequestGet.count = 0 mockRequestGet.passes = 2 mockRequestGet.fails = 0 mockRequestGet.pass_val = True client = AppurifyClient(api_key="test_key", api_secret="test_secret", test_type="uiautomation", app_src=__file__, app_src_type='raw', test_src=__file__, test_src_type='raw', timeout_sec=2, poll_every=0.1) result_code = client.main() self.assertEqual(result_code, 0, "Main should execute and return pass code")
def main(): """ main program """ for i in xrange(1,len(sys.argv)): print "File: %s"%sys.argv[i] params = {} if (len(sys.argv)>0): params = parse_input(sys.argv[1]) # print params client = AppurifyClient(**params) sys.exit(client.main())
def testMainPassUrl(self): mockRequestGet.count = 0 mockRequestGet.passes = 2 mockRequestGet.fails = 0 mockRequestGet.pass_val = True client = AppurifyClient(api_key="test_key", api_secret="test_secret", test_type="ios_webrobot", app_src=None, test_src=None, url="www.yahoo.com", timeout_sec=2, poll_every=0.1) result_code = client.main() self.assertEqual(result_code, 0, "Main should execute and return pass code")
def testMainFail(self): mockRequestGet.count = 0 mockRequestGet.passes = 1 mockRequestGet.fails = 1 mockRequestGet.exception = 0 mockRequestGet.pass_val = False client = AppurifyClient(api_key="test_key", api_secret="test_secret", test_type="uiautomation", app_src=__file__, app_src_type='raw', test_src=__file__, test_src_type='raw', timeout_sec=2, poll_every=0.1, device_type_id="137") result_code = client.main() self.assertEqual(result_code, 1, "Main should execute and return fail code")
def testDefaultPollTimeoutCode(self): old_env = os.environ.get('APPURIFY_API_TIMEOUT', None) try: os.environ['APPURIFY_API_TIMEOUT'] = '0.2' mockRequestGet.count = -20 client = AppurifyClient(api_key="test_key", api_secret="test_secret", test_type="ios_webrobot", app_src=None, test_src=None, url="www.yahoo.com", poll_every=0.1) result_code = client.main() self.assertEqual(result_code, 3, "Main should execute and return error code with default timeout") finally: if old_env: os.environ['APPURIFY_API_TIMEOUT'] = str(old_env)
def testPrintConfig(self): client = AppurifyClient(access_token="authenticated", test_type="ios_webrobot") config = [{ "id": 1963, "device": { "id": 123, "profiler": True, "videocapture": True, }, "framework": "{\"uiautomation\": {\"template\": \"Memory_Profiling_Template\"}}", "test_timeout": 240, "debug": False, "keep_vm": False, "device_types": [], "vm_size": "small" }] client.printConfigs(config)
def testUploadAppSource(self): client = AppurifyClient(access_token="authenticated", app_src=__file__, app_src_type='raw', test_type='calabash', name="test_name") app_id = client.uploadApp() self.assertEqual(app_id, "test_app_id", "Should properly fetch web robot for app id")
def testPollTestResult(self): mockRequestGet.count = 0 client = AppurifyClient(access_token="authenticated", timeout_sec=2, poll_every=0.1) test_status_response = client.pollTestResult("test_test_run_id", 2) self.assertEqual(test_status_response['status'], "complete", "Should poll until complete")
def testRunTestMulti(self): client = AppurifyClient(access_token="authenticated") test_run_id, queue_timeout_limit, configs = client.runTest("app_id", "test_test_id") self.assertEqual(test_run_id, "test_test_run_id1,test_test_run_id2", "Should get test_run_ids when executing run") self.assertEqual(len(configs), 2, "Should get config back for test run") self.assertEqual(configs[0]['device']['id'], 123, "Sanity check parameters")
def testUploadConfig(self): client = AppurifyClient(access_token="authenticated", test_type="ios_webrobot") config_id = client.uploadConfig("test_id", config_src=__file__) self.assertEqual(config_id, 23456, "Should properly fetch uploaded config id")
def testUploadTestNoSourceError(self): client = AppurifyClient(access_token="authenticated", test_type='uiautomation') with self.assertRaises(AppurifyClientError): app_id = client.uploadTest('test_app_id')
def testPollTimeoutCode(self): mockRequestGet.count = -20 client = AppurifyClient(access_token="authenticated", timeout_sec=0.2, poll_every=0.1) result_code = client.main() self.assertEqual(result_code, 1, "Main should execute and return error code")
def testNoAuth(self): client = AppurifyClient() with self.assertRaises(AppurifyClientError): """ Should error out on no auth data """ client.refreshAccessToken()
def testGetAccessTokenPrePop(self): client = AppurifyClient(access_token="Already_Set") client.refreshAccessToken() access_token = client.access_token self.assertEqual(access_token, "Already_Set", "Should return access token when one is provided")
def testGetAccessToken(self): client = AppurifyClient(api_key="test_key", api_secret="test_secret") client.refreshAccessToken() access_token = client.access_token self.assertEqual(access_token, "test_access_token", "Should return proper access token on post")
def testGetExceptionExitCode(self): mockRequestGet.count = -20 client = AppurifyClient(access_token="authenticated", timeout_sec=0.2, poll_every=0.1, device_type_id="137") self.assertEqual(client.getExceptionExitCode([{"exception": "4007: Error installing the app: file does not contain AndroidManifest.xml\n (1)"}]), EXIT_CODE_APP_INSTALL_FAILED, "Should return correct exit code for matching exception") self.assertEqual(client.getExceptionExitCode([{"exception": "-9999: no match anything"}]), EXIT_CODE_OTHER_EXCEPTION, "Should return correct exit code for no exception")
def testPollTimeout(self): mockRequestGet.count = -20 client = AppurifyClient(access_token="authenticated", timeout_sec=0.2, poll_every=0.1) with self.assertRaises(AppurifyClientError): client.pollTestResult("test_test_run_id", 0.2)
def testUploadAppNoSourceError(self): client = AppurifyClient(access_token="authenticated", app_src_type='raw', test_type='calabash') with self.assertRaises(AppurifyClientError): client.uploadApp()
def testGetExceptionExitCode(self): mockRequestGet.count = -20 client = AppurifyClient(access_token="authenticated", timeout_sec=0.2, poll_every=0.1) self.assertEqual(client.getExceptionExitCode([{"exception": "4007: Error installing the app: file does not contain AndroidManifest.xml\n (1)"}]), 5, "Should return correct exit code for matching exception") self.assertEqual(client.getExceptionExitCode([{"exception": "-9999: no match anything"}]), 7, "Should return correct exit code for no exception")
def testUploadTestNoSource(self): client = AppurifyClient(access_token="authenticated", test_type='ios_webrobot') app_id = client.uploadTest('test_app_id') self.assertEqual(app_id, "test_test_id", "Should properly fetch web robot for app id")
#!/usr/bin/env python # 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 appurify.client import AppurifyClient if __name__ == '__main__': AppurifyClient.cli()
def testUploadTest(self): client = AppurifyClient(access_token="authenticated", test_src=__file__, test_type="uiautomation", test_src_type='raw') test_id = client.uploadTest('test_app_id') self.assertEqual(test_id, "test_test_id", "Should properly fetch web robot for app id")