old_contents: #!/usr/bin/env python
  
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # 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.
  
  import unittest
  import os
  import sys
  import new
  from appium import webdriver
  from sauceclient import SauceClient
  
  SAUCE_USERNAME = os.environ.get('SAUCE_USERNAME')
  SAUCE_ACCESS_KEY = os.environ.get('SAUCE_ACCESS_KEY')
  sauce = SauceClient(SAUCE_USERNAME, SAUCE_ACCESS_KEY)
  
  
  def on_platforms(platforms):
      def decorator(base_class):
          module = sys.modules[base_class.__module__].__dict__
          for i, platform in enumerate(platforms):
              d = dict(base_class.__dict__)
              d['desired_capabilities'] = platform
              name = "%s_%s" % (base_class.__name__, i + 1)
              module[name] = new.classobj(name, (base_class,), d)
      return decorator
  
  
  class SauceTestCase(unittest.TestCase):
      def setUp(self):
          self.desired_capabilities['name'] = self.id()
          sauce_url = "http://%s:%s@ondemand.saucelabs.com:80/wd/hub"
          self.driver = webdriver.Remote(
              desired_capabilities=self.desired_capabilities,
              command_executor=sauce_url % (SAUCE_USERNAME, SAUCE_ACCESS_KEY)
          )
          self.driver.implicitly_wait(30)
      
      def tearDown(self):
          print("Link to your job: https://saucelabs.com/jobs/%s" % self.driver.session_id)
          try:
              if sys.exc_info() == (None, None, None):
                  sauce.jobs.update_job(self.driver.session_id, passed=True)
              else:
                  sauce.jobs.update_job(self.driver.session_id, passed=False)
          finally:
              self.driver.quit()
  
new_contents: #!/usr/bin/env python
  
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # 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.
  
  import unittest
  import os
  import sys
  from appium import webdriver
  from sauceclient import SauceClient
  
  SAUCE_USERNAME = os.environ.get('SAUCE_USERNAME')
  SAUCE_ACCESS_KEY = os.environ.get('SAUCE_ACCESS_KEY')
  sauce = SauceClient(SAUCE_USERNAME, SAUCE_ACCESS_KEY)
  
  
  def on_platforms(platforms):
      def decorator(base_class):
          module = sys.modules[base_class.__module__].__dict__
          for i, platform in enumerate(platforms):
              name = "%s_%s" % (base_class.__name__, i + 1)
              d = {'desired_capabilities' : platform}
              module[name] = type(name, (base_class,), d)
      return decorator
  
  
  class SauceTestCase(unittest.TestCase):
      def setUp(self):
          self.desired_capabilities['name'] = self.id()
          sauce_url = "http://%s:%s@ondemand.saucelabs.com:80/wd/hub"
          self.driver = webdriver.Remote(
              desired_capabilities=self.desired_capabilities,
              command_executor=sauce_url % (SAUCE_USERNAME, SAUCE_ACCESS_KEY)
          )
          self.driver.implicitly_wait(30)
      
      def tearDown(self):
          print("Link to your job: https://saucelabs.com/jobs/%s" % self.driver.session_id)
          try:
              if sys.exc_info() == (None, None, None):
                  sauce.jobs.update_job(self.driver.session_id, passed=True)
              else:
                  sauce.jobs.update_job(self.driver.session_id, passed=False)
          finally:
              self.driver.quit()
  
  
subject: Fix saucetestcase to run under Python3.