|
19 | 19 | # with Crate these terms will supersede the license and you may use the
|
20 | 20 | # software solely pursuant to the terms of the relevant commercial agreement.
|
21 | 21 |
|
22 |
| -from unittest import TestCase |
| 22 | +import os |
| 23 | +import tempfile |
| 24 | +from unittest import TestCase, mock |
23 | 25 | from io import BytesIO
|
24 |
| -from .layer import prepend_http, http_url_from_host_port, wait_for_http_url |
| 26 | +from .layer import CrateLayer, prepend_http, http_url_from_host_port, wait_for_http_url |
25 | 27 |
|
26 | 28 |
|
27 | 29 | class LayerUtilsTest(TestCase):
|
@@ -55,3 +57,28 @@ def test_wait_for_http(self):
|
55 | 57 | log = BytesIO(b'[i.c.p.h.CrateNettyHttpServerTransport] [crate] publish_address {}')
|
56 | 58 | addr = wait_for_http_url(log=log, timeout=1)
|
57 | 59 | self.assertEqual(None, addr)
|
| 60 | + |
| 61 | + @mock.patch.dict('os.environ', {}, clear=True) |
| 62 | + def test_java_home_env_not_set(self): |
| 63 | + with tempfile.TemporaryDirectory() as tmpdir: |
| 64 | + layer = CrateLayer('java-home-test', tmpdir) |
| 65 | + # JAVA_HOME must not be set to `None`, since it would be interpreted as a |
| 66 | + # string 'None', and therefore intepreted as a path |
| 67 | + self.assertEqual(layer.env['JAVA_HOME'], '') |
| 68 | + |
| 69 | + @mock.patch.dict('os.environ', {}, clear=True) |
| 70 | + def test_java_home_env_set(self): |
| 71 | + java_home = '/usr/lib/jvm/java-11-openjdk-amd64' |
| 72 | + with tempfile.TemporaryDirectory() as tmpdir: |
| 73 | + os.environ['JAVA_HOME'] = java_home |
| 74 | + layer = CrateLayer('java-home-test', tmpdir) |
| 75 | + self.assertEqual(layer.env['JAVA_HOME'], java_home) |
| 76 | + |
| 77 | + @mock.patch.dict('os.environ', {}, clear=True) |
| 78 | + def test_java_home_env_override(self): |
| 79 | + java_11_home = '/usr/lib/jvm/java-11-openjdk-amd64' |
| 80 | + java_12_home = '/usr/lib/jvm/java-12-openjdk-amd64' |
| 81 | + with tempfile.TemporaryDirectory() as tmpdir: |
| 82 | + os.environ['JAVA_HOME'] = java_11_home |
| 83 | + layer = CrateLayer('java-home-test', tmpdir, env={'JAVA_HOME': java_12_home}) |
| 84 | + self.assertEqual(layer.env['JAVA_HOME'], java_12_home) |
0 commit comments