Ejemplo n.º 1
0
 def test_caching_multiple_sdks(self):
   with distribution() as first_sdk_path:
     with distribution() as second_sdk_path:
       first_sdk_instance = AndroidDistribution.cached(first_sdk_path)
       second_sdk_instance = AndroidDistribution.cached(second_sdk_path)
       self.assertEquals(AndroidDistribution._CACHED_SDK[first_sdk_path], first_sdk_instance)
       self.assertEquals(AndroidDistribution._CACHED_SDK[second_sdk_path], second_sdk_instance)
Ejemplo n.º 2
0
 def test_register_copy_but_no_tool(self):
   with distribution() as sdk:
     with temporary_dir() as workdir:
       android_sdk = AndroidDistribution.cached(sdk)
       android_jar = os.path.join('platforms', 'android-19', 'no.jar')
       with self.assertRaises(AndroidDistribution.DistributionError):
         android_sdk.register_android_tool(android_jar, workdir=workdir)
Ejemplo n.º 3
0
 def test_register_copy_is_validated(self):
   with distribution() as sdk:
     with temporary_dir() as workdir:
       android_sdk = AndroidDistribution.cached(sdk)
       android_jar = os.path.join('platforms', 'android-19', 'android.jar')
       android_sdk.register_android_tool(android_jar, workdir=workdir)
       self.assertIn(android_jar, android_sdk._validated_tools)
Ejemplo n.º 4
0
 def test_register_tool_returns_file(self):
   with distribution() as sdk:
     with temporary_dir() as workdir:
       android_sdk = AndroidDistribution.cached(sdk)
       android_jar = os.path.join('platforms', 'android-19', 'android.jar')
       android_sdk.register_android_tool(android_jar, workdir=workdir)
       self.assertEquals(os.path.isfile(android_sdk._validated_tools[android_jar]), True)
Ejemplo n.º 5
0
  def test_register_tool_no_permission(self):
    with distribution() as sdk:
      with temporary_dir() as workdir:
        os.chmod(workdir, 0o400)
        android_sdk = AndroidDistribution.cached(sdk)
        android_jar = os.path.join('platforms', 'android-19', 'android.jar')

        with self.assertRaises(AndroidDistribution.DistributionError):
          android_sdk.register_android_tool(android_jar, workdir=workdir)
Ejemplo n.º 6
0
 def test_locate_alternative_variables(self):
   # Test that alternative environmental variables are accepted.
   with distribution() as sdk:
     with self.env(ANDROID_SDK=sdk):
       dist = AndroidDistribution.locate_sdk_path()
       self.assertEquals(dist._sdk_path, sdk)
Ejemplo n.º 7
0
 def test_locate_sdk_path(self):
   with distribution() as sdk:
     with self.env(ANDROID_HOME=sdk):
       dist = AndroidDistribution.locate_sdk_path()
       self.assertEquals(dist._sdk_path, sdk)
Ejemplo n.º 8
0
 def test_locate_no_sdk_on_path(self):
   with distribution() as sdk:
     with self.env(ANDROooooD_HOME=sdk):
       with self.assertRaises(AndroidDistribution.DistributionError):
         AndroidDistribution.locate_sdk_path()
Ejemplo n.º 9
0
 def test_passing_sdk_path(self):
   with distribution() as sdk:
     android_sdk = AndroidDistribution(sdk_path=sdk)
     aapt = os.path.join(sdk, 'build-tools', '19.1.0', 'aapt')
     android_tool = android_sdk.register_android_tool(aapt)
     self.assertEquals(android_tool, os.path.join(sdk, aapt))
Ejemplo n.º 10
0
 def test_get_bad_tool_path(self):
   with distribution() as sdk:
     android_sdk = AndroidDistribution.cached(sdk)
     android_jar = os.path.join('platforms', 'android-19', 'no.jar')
     with self.assertRaises(AndroidDistribution.DistributionError):
       android_sdk._get_tool_path(android_jar)
Ejemplo n.º 11
0
 def test_validate_bad_path(self):
   # The SDK path is not validated until the tool is registered.
   sdk = os.path.join('/no', 'sdk', 'here')
   android_sdk = AndroidDistribution.cached(sdk)
   self.assertEquals(sdk, android_sdk._sdk_path)
Ejemplo n.º 12
0
 def test_empty_sdk_path(self):
   # Shows that an AndroidDistribution can be created as long as an sdk path is declared.
   with temporary_dir() as sdk:
     android_sdk = AndroidDistribution.cached(sdk)
     self.assertEquals(android_sdk._sdk_path, sdk)
Ejemplo n.º 13
0
 def test_validated_tools(self):
   with distribution() as sdk:
     android_sdk = AndroidDistribution.cached(sdk)
     aapt = os.path.join('build-tools', '19.1.0', 'aapt')
     android_sdk.register_android_tool(aapt)
     self.assertIn(aapt, android_sdk._validated_tools)
Ejemplo n.º 14
0
 def test_register_nonexistent_android_tool(self):
   with distribution() as sdk:
     android_sdk = AndroidDistribution.cached(sdk)
     with self.assertRaises(AndroidDistribution.DistributionError):
       android_sdk.register_android_tool(os.path.join('build-tools', '19.1.0', 'random_tool'))
Ejemplo n.º 15
0
 def test_register_android_tool_bad_sdk(self):
   sdk = os.path.join('/no', 'sdk', 'here')
   android_sdk = AndroidDistribution.cached(sdk)
   aapt = os.path.join('build-tools', '19.1.0', 'aapt')
   with self.assertRaises(AndroidDistribution.DistributionError):
     android_sdk.register_android_tool(aapt)
Ejemplo n.º 16
0
 def test_register_android_tool(self):
   with distribution() as sdk:
     android_sdk = AndroidDistribution.cached(sdk)
     aapt = os.path.join('build-tools', '19.1.0', 'aapt')
     registered_aapt = android_sdk.register_android_tool(aapt)
     self.assertEquals(registered_aapt, os.path.join(sdk, aapt))
Ejemplo n.º 17
0
 def test_sdk_path(self):
   with distribution() as sdk:
     android_sdk = AndroidDistribution.cached(sdk)
     self.assertEquals(sdk, android_sdk._sdk_path)
Ejemplo n.º 18
0
 def test_get_tool_path(self):
   with distribution() as sdk:
     android_sdk = AndroidDistribution.cached(sdk)
     android_jar = os.path.join('platforms', 'android-19', 'android.jar')
     tool_path = android_sdk._get_tool_path(android_jar)
     self.assertEquals(tool_path, os.path.join(sdk, android_jar))
Ejemplo n.º 19
0
 def test_sdk_path_is_none(self):
   with self.env() as sdk:
     with self.assertRaises(AndroidDistribution.DistributionError):
       AndroidDistribution.cached(sdk)
Ejemplo n.º 20
0
 def android_sdk(self):
   """Instantiate an Android SDK distribution that provides tools to android tasks."""
   return AndroidDistribution.cached(self._sdk_path)