def get_two_distributions():
  try:
    java7 = Distribution.locate(minimum_version='1.7', maximum_version='1.7.9999')
    java8 = Distribution.locate(minimum_version='1.8', maximum_version='1.8.9999')
    return java7, java8
  except Distribution.Error:
    return None
示例#2
0
def missing_jvm(version):
    try:
        Distribution.locate(minimum_version=version,
                            maximum_version='{}.9999'.format(version))
        return False
    except Distribution.Error:
        return True
示例#3
0
 def test_locate_trumps_path(self):
   with self.java_home_exe() as (jdk1_home, jdk2_home):
     with distribution(executables=exe('bin/java', version='3')) as path_jdk:
       with env(PATH=os.path.join(path_jdk, 'bin')):
         dist = Distribution.locate()
         self.assertEqual(jdk1_home, dist.home)
         dist = Distribution.locate(minimum_version='3')
         self.assertEqual(path_jdk, dist.home)
示例#4
0
 def test_locate_trumps_path(self):
     with self.java_home_exe() as (jdk1_home, jdk2_home):
         with distribution(
                 executables=exe('bin/java', version='3')) as path_jdk:
             with env(PATH=os.path.join(path_jdk, 'bin')):
                 dist = Distribution.locate()
                 self.assertEqual(jdk1_home, dist.home)
                 dist = Distribution.locate(minimum_version='3')
                 self.assertEqual(path_jdk, dist.home)
示例#5
0
 def test_locate_java_home_trumps(self):
   with self.java_home_exe() as (jdk1_home, jdk2_home):
     with distribution(executables=exe('bin/java', version='3')) as java_home:
       with env(JAVA_HOME=java_home):
         dist = Distribution.locate()
         self.assertEqual(java_home, dist.home)
         dist = Distribution.locate(maximum_version='1.1')
         self.assertEqual(jdk1_home, dist.home)
         dist = Distribution.locate(minimum_version='1.1', maximum_version='2')
         self.assertEqual(jdk2_home, dist.home)
示例#6
0
 def test_locate_java_home_trumps(self):
     with self.java_home_exe() as (jdk1_home, jdk2_home):
         with distribution(
                 executables=exe('bin/java', version='3')) as java_home:
             with env(JAVA_HOME=java_home):
                 dist = Distribution.locate()
                 self.assertEqual(java_home, dist.home)
                 dist = Distribution.locate(maximum_version='1.1')
                 self.assertEqual(jdk1_home, dist.home)
                 dist = Distribution.locate(minimum_version='1.1',
                                            maximum_version='2')
                 self.assertEqual(jdk2_home, dist.home)
示例#7
0
  def test_validate_live(self):
    with pytest.raises(Distribution.Error):
      Distribution(bin_path=os.path.dirname(self.JAVA), minimum_version='999.9.9').validate()
    with pytest.raises(Distribution.Error):
      Distribution(bin_path=os.path.dirname(self.JAVA), maximum_version='0.0.1').validate()

    Distribution(bin_path=os.path.dirname(self.JAVA)).validate()
    Distribution(bin_path=os.path.dirname(self.JAVA), minimum_version='1.3.1').validate()
    Distribution(bin_path=os.path.dirname(self.JAVA), maximum_version='999.999.999').validate()
    Distribution(bin_path=os.path.dirname(self.JAVA), minimum_version='1.3.1',
                 maximum_version='999.999.999').validate()
    Distribution.locate(jdk=False)
示例#8
0
    def test_validate_live(self):
        with pytest.raises(Distribution.Error):
            Distribution(bin_path=os.path.dirname(self.JAVA),
                         minimum_version='999.9.9').validate()
        with pytest.raises(Distribution.Error):
            Distribution(bin_path=os.path.dirname(self.JAVA),
                         maximum_version='0.0.1').validate()

        Distribution(bin_path=os.path.dirname(self.JAVA)).validate()
        Distribution(bin_path=os.path.dirname(self.JAVA),
                     minimum_version='1.3.1').validate()
        Distribution(bin_path=os.path.dirname(self.JAVA),
                     maximum_version='999.999.999').validate()
        Distribution(bin_path=os.path.dirname(self.JAVA),
                     minimum_version='1.3.1',
                     maximum_version='999.999.999').validate()
        Distribution.locate(jdk=False)
示例#9
0
 def test_locate_jdk2(self):
   with env():
     with self.java_home_exe() as (_, jdk2_home):
       dist = Distribution.locate(minimum_version='2')
       self.assertEqual(jdk2_home, dist.home)
示例#10
0
 def test_locate_invalid_java_home(self):
     with distribution(executables=exe('java')) as dist_root:
         with env(JAVA_HOME=dist_root):
             with self.assertRaises(Distribution.Error):
                 Distribution.locate()
示例#11
0
 def test_locate_version_within_range(self):
   with distribution(executables=exe('bin/java', '1.7.0')) as dist_root:
     with env(PATH=os.path.join(dist_root, 'bin')):
       Distribution.locate(minimum_version='1.6.0', maximum_version='1.7.999')
示例#12
0
 def test_locate_jdk1(self):
   with env():
     with self.java_dist_dir() as (jdk1_home, _):
       dist = Distribution.locate(maximum_version='1')
       self.assertEqual(jdk1_home, dist.home)
示例#13
0
 def test_locate_jre_by_path(self):
   with distribution(executables=exe('bin/java')) as dist_root:
     with env(PATH=os.path.join(dist_root, 'bin')):
       Distribution.locate()
示例#14
0
 def test_locate_jdk_via_jre_path(self):
   with distribution(executables=[exe('jre/bin/java'), exe('bin/javac')],
                     java_home='jre') as dist_root:
     with env(PATH=os.path.join(dist_root, 'jre', 'bin')):
       Distribution.locate(jdk=True)
示例#15
0
 def test_locate_jdk_by_path(self):
     with distribution(executables=[exe('bin/java'),
                                    exe('bin/javac')]) as dist_root:
         with env(PATH=os.path.join(dist_root, 'bin')):
             Distribution.locate(jdk=True)
示例#16
0
 def test_locate_version_to_high(self):
   with distribution(executables=exe('bin/java', '1.8.0')) as dist_root:
     with env(PATH=os.path.join(dist_root, 'bin')):
       with self.assertRaises(Distribution.Error):
         Distribution.locate(maximum_version='1.7.999')
示例#17
0
 def test_locate_jdk2(self):
     with env():
         with self.java_home_exe() as (_, jdk2_home):
             dist = Distribution.locate(minimum_version='2')
             self.assertEqual(jdk2_home, dist.home)
示例#18
0
 def test_locate_jdk_via_jre_path(self):
     with distribution(executables=[exe('jre/bin/java'),
                                    exe('bin/javac')],
                       java_home='jre') as dist_root:
         with env(PATH=os.path.join(dist_root, 'jre', 'bin')):
             Distribution.locate(jdk=True)
示例#19
0
 def test_locate_jdk1(self):
     with env():
         with self.java_home_exe() as (jdk1_home, _):
             dist = Distribution.locate()
             self.assertEqual(jdk1_home, dist.home)
示例#20
0
 def test_locate_jdk1(self):
     with env():
         with self.java_dist_dir() as (jdk1_home, _):
             dist = Distribution.locate(maximum_version='1')
             self.assertEqual(jdk1_home, dist.home)
示例#21
0
 def test_locate_via_java_home(self):
     with distribution(executables=exe('bin/java')) as dist_root:
         with env(JAVA_HOME=dist_root):
             Distribution.locate()
示例#22
0
 def test_locate_version_within_range(self):
     with distribution(executables=exe('bin/java', '1.7.0')) as dist_root:
         with env(PATH=os.path.join(dist_root, 'bin')):
             Distribution.locate(minimum_version='1.6.0',
                                 maximum_version='1.7.999')
示例#23
0
    def test_locate(self):
        @contextmanager
        def env(**kwargs):
            environment = dict(JDK_HOME=None, JAVA_HOME=None, PATH=None)
            environment.update(**kwargs)
            with environment_as(**environment):
                yield

        with pytest.raises(Distribution.Error):
            with env():
                Distribution.locate()

        with pytest.raises(Distribution.Error):
            with self.distribution(files='java') as jdk:
                with env(PATH=jdk):
                    Distribution.locate()

        with pytest.raises(Distribution.Error):
            with self.distribution(executables=self.exe('java')) as jdk:
                with env(PATH=jdk):
                    Distribution.locate(jdk=True)

        with pytest.raises(Distribution.Error):
            with self.distribution(
                    executables=self.exe('java', '1.6.0')) as jdk:
                with env(PATH=jdk):
                    Distribution.locate(minimum_version='1.7.0')
            with self.distribution(
                    executables=self.exe('java', '1.8.0')) as jdk:
                with env(PATH=jdk):
                    Distribution.locate(maximum_version='1.7.999')

        with pytest.raises(Distribution.Error):
            with self.distribution(executables=self.exe('java')) as jdk:
                with env(JDK_HOME=jdk):
                    Distribution.locate()

        with pytest.raises(Distribution.Error):
            with self.distribution(executables=self.exe('java')) as jdk:
                with env(JAVA_HOME=jdk):
                    Distribution.locate()

        with self.distribution(executables=self.exe('java')) as jdk:
            with env(PATH=jdk):
                Distribution.locate()

        with self.distribution(
                executables=[self.exe('java'),
                             self.exe('javac')]) as jdk:
            with env(PATH=jdk):
                Distribution.locate(jdk=True)

        with self.distribution(executables=self.exe('java', '1.7.0')) as jdk:
            with env(PATH=jdk):
                Distribution.locate(minimum_version='1.6.0')
            with env(PATH=jdk):
                Distribution.locate(maximum_version='1.7.999')
            with env(PATH=jdk):
                Distribution.locate(minimum_version='1.6.0',
                                    maximum_version='1.7.999')

        with self.distribution(executables=self.exe('bin/java')) as jdk:
            with env(JDK_HOME=jdk):
                Distribution.locate()

        with self.distribution(executables=self.exe('bin/java')) as jdk:
            with env(JAVA_HOME=jdk):
                Distribution.locate()
示例#24
0
 def test_locate_jdk_is_jre(self):
   with distribution(executables=exe('bin/java')) as dist_root:
     with env(PATH=os.path.join(dist_root, 'bin')):
       with self.assertRaises(Distribution.Error):
         Distribution.locate(jdk=True)
示例#25
0
def missing_jvm(version):
  try:
    Distribution.locate(minimum_version=version, maximum_version='{}.9999'.format(version))
    return False
  except Distribution.Error:
    return True
示例#26
0
 def test_locate_invalid_java_home(self):
   with distribution(executables=exe('java')) as dist_root:
     with env(JAVA_HOME=dist_root):
       with self.assertRaises(Distribution.Error):
         Distribution.locate()
示例#27
0
    def test_locate(self):

        with pytest.raises(Distribution.Error):
            with self.env():
                Distribution.locate()

        with pytest.raises(Distribution.Error):
            with self.distribution(files='java') as jdk:
                with self.env(PATH=jdk):
                    Distribution.locate()

        with pytest.raises(Distribution.Error):
            with self.distribution(executables=self.exe('java')) as jdk:
                with self.env(PATH=jdk):
                    Distribution.locate(jdk=True)

        with pytest.raises(Distribution.Error):
            with self.distribution(
                    executables=self.exe('java', '1.6.0')) as jdk:
                with self.env(PATH=jdk):
                    Distribution.locate(minimum_version='1.7.0')

        with pytest.raises(Distribution.Error):
            with self.distribution(
                    executables=self.exe('java', '1.8.0')) as jdk:
                with self.env(PATH=jdk):
                    Distribution.locate(maximum_version='1.7.999')

        with pytest.raises(Distribution.Error):
            with self.distribution(executables=self.exe('java')) as jdk:
                with self.env(JDK_HOME=jdk):
                    Distribution.locate()

        with pytest.raises(Distribution.Error):
            with self.distribution(executables=self.exe('java')) as jdk:
                with self.env(JAVA_HOME=jdk):
                    Distribution.locate()

        with self.distribution(executables=self.exe('java')) as jdk:
            with self.env(PATH=jdk):
                Distribution.locate()

        with self.distribution(
                executables=[self.exe('java'),
                             self.exe('javac')]) as jdk:
            with self.env(PATH=jdk):
                Distribution.locate(jdk=True)

        with self.distribution(executables=self.exe('java', '1.7.0')) as jdk:
            with self.env(PATH=jdk):
                Distribution.locate(minimum_version='1.6.0')
            with self.env(PATH=jdk):
                Distribution.locate(maximum_version='1.7.999')
            with self.env(PATH=jdk):
                Distribution.locate(minimum_version='1.6.0',
                                    maximum_version='1.7.999')

        with self.distribution(executables=self.exe('bin/java')) as jdk:
            with self.env(JDK_HOME=jdk):
                Distribution.locate()

        with self.distribution(executables=self.exe('bin/java')) as jdk:
            with self.env(JAVA_HOME=jdk):
                Distribution.locate()
示例#28
0
 def test_locate_jdk_by_path(self):
   with distribution(executables=[exe('bin/java'), exe('bin/javac')]) as dist_root:
     with env(PATH=os.path.join(dist_root, 'bin')):
       Distribution.locate(jdk=True)
示例#29
0
  def test_locate(self):
    @contextmanager
    def env(**kwargs):
      environment = dict(JDK_HOME=None, JAVA_HOME=None, PATH=None)
      environment.update(**kwargs)
      with environment_as(**environment):
        yield

    with pytest.raises(Distribution.Error):
      with env():
        Distribution.locate()

    with pytest.raises(Distribution.Error):
      with self.distribution(files='java') as jdk:
        with env(PATH=jdk):
          Distribution.locate()

    with pytest.raises(Distribution.Error):
      with self.distribution(executables=self.exe('java')) as jdk:
        with env(PATH=jdk):
          Distribution.locate(jdk=True)

    with pytest.raises(Distribution.Error):
      with self.distribution(executables=self.exe('java', '1.6.0')) as jdk:
        with env(PATH=jdk):
          Distribution.locate(minimum_version='1.7.0')
      with self.distribution(executables=self.exe('java', '1.8.0')) as jdk:
        with env(PATH=jdk):
          Distribution.locate(maximum_version='1.7.999')

    with pytest.raises(Distribution.Error):
      with self.distribution(executables=self.exe('java')) as jdk:
        with env(JDK_HOME=jdk):
          Distribution.locate()

    with pytest.raises(Distribution.Error):
      with self.distribution(executables=self.exe('java')) as jdk:
        with env(JAVA_HOME=jdk):
          Distribution.locate()

    with self.distribution(executables=self.exe('java')) as jdk:
      with env(PATH=jdk):
        Distribution.locate()

    with self.distribution(executables=[self.exe('java'), self.exe('javac')]) as jdk:
      with env(PATH=jdk):
        Distribution.locate(jdk=True)

    with self.distribution(executables=self.exe('java', '1.7.0')) as jdk:
      with env(PATH=jdk):
        Distribution.locate(minimum_version='1.6.0')
      with env(PATH=jdk):
        Distribution.locate(maximum_version='1.7.999')
      with env(PATH=jdk):
        Distribution.locate(minimum_version='1.6.0', maximum_version='1.7.999')

    with self.distribution(executables=self.exe('bin/java')) as jdk:
      with env(JDK_HOME=jdk):
        Distribution.locate()

    with self.distribution(executables=self.exe('bin/java')) as jdk:
      with env(JAVA_HOME=jdk):
        Distribution.locate()
示例#30
0
 def test_locate_version_less_then_or_equal(self):
   with distribution(executables=exe('bin/java', '1.7.0')) as dist_root:
     with env(PATH=os.path.join(dist_root, 'bin')):
       Distribution.locate(maximum_version='1.7.999')
示例#31
0
 def test_locate_version_to_high(self):
     with distribution(executables=exe('bin/java', '1.8.0')) as dist_root:
         with env(PATH=os.path.join(dist_root, 'bin')):
             with self.assertRaises(Distribution.Error):
                 Distribution.locate(maximum_version='1.7.999')
示例#32
0
 def test_locate_via_java_home(self):
   with distribution(executables=exe('bin/java')) as dist_root:
     with env(JAVA_HOME=dist_root):
       Distribution.locate()
示例#33
0
 def test_locate_java_not_executable(self):
     with distribution(files='bin/java') as dist_root:
         with env(PATH=os.path.join(dist_root, 'bin')):
             with self.assertRaises(Distribution.Error):
                 Distribution.locate()
示例#34
0
 def test_locate_jdk1(self):
   with env():
     with self.java_home_exe() as (jdk1_home, _):
       dist = Distribution.locate()
       self.assertEqual(jdk1_home, dist.home)
示例#35
0
 def test_locate_none(self):
   with env():
     with self.assertRaises(Distribution.Error):
       Distribution.locate()
示例#36
0
 def test_locate_jre_by_path(self):
     with distribution(executables=exe('bin/java')) as dist_root:
         with env(PATH=os.path.join(dist_root, 'bin')):
             Distribution.locate()
示例#37
0
 def test_locate_java_not_executable(self):
   with distribution(files='bin/java') as dist_root:
     with env(PATH=os.path.join(dist_root, 'bin')):
       with self.assertRaises(Distribution.Error):
         Distribution.locate()
示例#38
0
 def test_locate_jdk_is_jre(self):
     with distribution(executables=exe('bin/java')) as dist_root:
         with env(PATH=os.path.join(dist_root, 'bin')):
             with self.assertRaises(Distribution.Error):
                 Distribution.locate(jdk=True)
示例#39
0
 def test_locate_version_less_then_or_equal(self):
     with distribution(executables=exe('bin/java', '1.7.0')) as dist_root:
         with env(PATH=os.path.join(dist_root, 'bin')):
             Distribution.locate(maximum_version='1.7.999')
示例#40
0
  def test_locate(self):

    with pytest.raises(Distribution.Error):
      with self.env():
        Distribution.locate()

    with pytest.raises(Distribution.Error):
      with self.distribution(files='java') as jdk:
        with self.env(PATH=jdk):
          Distribution.locate()

    with pytest.raises(Distribution.Error):
      with self.distribution(executables=self.exe('java')) as jdk:
        with self.env(PATH=jdk):
          Distribution.locate(jdk=True)

    with pytest.raises(Distribution.Error):
      with self.distribution(executables=self.exe('java', '1.6.0')) as jdk:
        with self.env(PATH=jdk):
          Distribution.locate(minimum_version='1.7.0')

    with pytest.raises(Distribution.Error):
      with self.distribution(executables=self.exe('java', '1.8.0')) as jdk:
        with self.env(PATH=jdk):
          Distribution.locate(maximum_version='1.7.999')

    with pytest.raises(Distribution.Error):
      with self.distribution(executables=self.exe('java')) as jdk:
        with self.env(JDK_HOME=jdk):
          Distribution.locate()

    with pytest.raises(Distribution.Error):
      with self.distribution(executables=self.exe('java')) as jdk:
        with self.env(JAVA_HOME=jdk):
          Distribution.locate()

    with self.distribution(executables=self.exe('java')) as jdk:
      with self.env(PATH=jdk):
        Distribution.locate()

    with self.distribution(executables=[self.exe('java'), self.exe('javac')]) as jdk:
      with self.env(PATH=jdk):
        Distribution.locate(jdk=True)

    with self.distribution(executables=self.exe('java', '1.7.0')) as jdk:
      with self.env(PATH=jdk):
        Distribution.locate(minimum_version='1.6.0')
      with self.env(PATH=jdk):
        Distribution.locate(maximum_version='1.7.999')
      with self.env(PATH=jdk):
        Distribution.locate(minimum_version='1.6.0', maximum_version='1.7.999')

    with self.distribution(executables=self.exe('bin/java')) as jdk:
      with self.env(JDK_HOME=jdk):
        Distribution.locate()

    with self.distribution(executables=self.exe('bin/java')) as jdk:
      with self.env(JAVA_HOME=jdk):
        Distribution.locate()
示例#41
0
 def test_validate_live_jdk(self):
     Distribution(bin_path=os.path.dirname(self.JAVAC), jdk=True).validate()
     Distribution(bin_path=os.path.dirname(self.JAVAC),
                  jdk=True).binary('javap')
     Distribution.locate(jdk=True)
示例#42
0
 def test_validate_live_jdk(self):
   Distribution(bin_path=os.path.dirname(self.JAVAC), jdk=True).validate()
   Distribution(bin_path=os.path.dirname(self.JAVAC), jdk=True).binary('javap')
   Distribution.locate(jdk=True)
示例#43
0
 def test_locate_none(self):
     with env():
         with self.assertRaises(Distribution.Error):
             Distribution.locate()