33This test assumes SAUCE_USERNAME and SAUCE_ACCESS_KEY are environment variables
44set to your Sauce Labs username and access key."""
55
6- import unittest
7- import os
8- import httplib
9- import base64
106from random import randint
117from appium import webdriver
12- try :
13- import json
14- except ImportError :
15- import simplejson as json
8+ from appium import SauceTestCase , on_platforms
169
17- SAUCE_USERNAME = os .environ .get ('SAUCE_USERNAME' )
18- SAUCE_ACCESS_KEY = os .environ .get ('SAUCE_ACCESS_KEY' )
19- base64string = base64 .encodestring ('%s:%s' % (SAUCE_USERNAME , SAUCE_ACCESS_KEY ))[:- 1 ]
2010
21- class SimpleIOSSauceTests (unittest .TestCase ):
22-
23- def setUp (self ):
24- # set up appium
25- app = 'http://appium.s3.amazonaws.com/TestApp6.0.app.zip'
26-
27- self .driver = webdriver .Remote (
28- command_executor = 'http://%s:%[email protected] :80/wd/hub' % (
SAUCE_USERNAME ,
SAUCE_ACCESS_KEY ),
29- desired_capabilities = {
30- 'appiumVersion' : '1.2.2' ,
31- 'name' : 'Appium Python iOS Test' ,
11+ platforms = [{
3212 'platformName' : 'iOS' ,
33- 'deviceName' : 'iPhone Simulator' ,
3413 'platformVersion' : '7.1' ,
35- 'app' : app
36- })
37-
38- def tearDown (self ):
39- print ("Link to your job: https://saucelabs.com/jobs/%s" % self .driver .session_id )
40- self .driver .quit ()
14+ 'deviceName' : 'iPhone Simulator' ,
15+ 'app' : 'http://appium.s3.amazonaws.com/TestApp6.0.app.zip' ,
16+ 'appiumVersion' : '1.3.4'
17+ }]
4118
42- def _set_test_status (self , jobid , passed = True ):
43- # Report the status of your test to Sauce
44- body_content = json .dumps ({"passed" : passed })
45- connection = httplib .HTTPConnection ("saucelabs.com" )
46- connection .request ('PUT' , '/rest/v1/%s/jobs/%s' % (SAUCE_USERNAME , jobid ),
47- body_content ,
48- headers = {"Authorization" : "Basic %s" % base64string })
49- result = connection .getresponse ()
50- return result .status == 200
19+ @on_platforms (platforms )
20+ class SimpleIOSSauceTests (SauceTestCase ):
5121
5222 def _populate (self ):
5323 # populate text fields with two random numbers
54- els = self .driver .find_elements_by_ios_uiautomation ( 'elements() ' )
24+ els = self .driver .find_elements_by_class_name ( 'UIATextField ' )
5525
5626 self ._sum = 0
5727 for i in range (2 ):
@@ -67,18 +37,5 @@ def test_ui_computation(self):
6737 self .driver .find_element_by_accessibility_id ('ComputeSumButton' ).click ()
6838
6939 # is sum equal ?
70- # sauce does not handle class name, so get fourth element
71- # sum = self.driver.find_elements_by_class_name("UIAStaticText")[0].text
72- sum = self .driver .find_element_by_ios_uiautomation ('elements()[3]' ).text
73- try :
74- self .assertEqual (int (sum ), self ._sum )
75- self ._set_test_status (self .driver .session_id , True )
76- except :
77- self ._set_test_status (self .driver .session_id , False )
78-
79-
80- if __name__ == '__main__' :
81- if not (SAUCE_USERNAME and SAUCE_ACCESS_KEY ):
82- print "Make sure you have SAUCE_USERNAME and SAUCE_ACCESS_KEY set as environment variables."
83- else :
84- unittest .main ()
40+ sum = self .driver .find_elements_by_class_name ("UIAStaticText" )[0 ].text
41+ self .assertEqual (int (sum ), self ._sum )
0 commit comments