| |
@@ -2,11 +2,17 @@
|
| |
|
| |
'''Unit test for switch_java_functions'''
|
| |
|
| |
- import io
|
| |
import unittest
|
| |
+ import sys
|
| |
|
| |
import switch_java_functions as funcs
|
| |
|
| |
+ PY2 = sys.version_info[0] == 2
|
| |
+ if PY2:
|
| |
+ from io import BytesIO as content_wrapper
|
| |
+ else:
|
| |
+ from io import StringIO as content_wrapper
|
| |
+
|
| |
SET_ALTERNATIVES = '/usr/sbin/alternatives --set '
|
| |
|
| |
def file_always_exists(path):
|
| |
@@ -22,7 +28,7 @@
|
| |
if path != file_name:
|
| |
raise AssertionError("Excepted path: '" + file_name + "' " +
|
| |
"Got path: '" + path + "'")
|
| |
- return io.BytesIO(contents)
|
| |
+ return content_wrapper(contents)
|
| |
return stub_open
|
| |
|
| |
|
| |
@@ -148,6 +154,7 @@
|
| |
funcs.SDK[java] = None
|
| |
funcs.PLUGIN[java] = None
|
| |
funcs.JAVADOCDIR[java] = None
|
| |
+ funcs.JAVADOCZIP[java] = None
|
| |
|
| |
@unittest.skip('implement this test')
|
| |
def test_get_java_identifiers(self):
|
| |
@@ -473,30 +480,23 @@
|
| |
self.assertEquals(a[7], 'openjdk')
|
| |
self.assertEquals(a[8], 'x686')
|
| |
|
| |
- def test_version_sort(self):
|
| |
- a=funcs.version_sort("1.7.0-openjdk-1.el7.x86_64", "1.7.0-openjdk-1.el7.x86_64")
|
| |
- self.assertEquals(a, 0)
|
| |
- a=funcs.version_sort("1.7.0-openjdk-01.el7.x86_64", "1.7.0-openjdk-1.el7.x86_64")
|
| |
- self.assertEquals(a, 0)
|
| |
- a=funcs.version_sort("1.7.0-openjdk-1.el7.x86_64", "1.007.0-openjdk-00001.el7.x86_64")
|
| |
- self.assertEquals(a, 0)
|
| |
- a=funcs.version_sort("1.7.0-openjdk-2.el7.x86_64", "1.7.0-openjdk-1.el7.x86_64")
|
| |
- self.assertEquals(a, -1)
|
| |
- a=funcs.version_sort("1.7.0-openjdk-2.el7.x86_64", "1.7.0-openjdk-3.el7.x86_64")
|
| |
- self.assertEquals(a, 1)
|
| |
- a=funcs.version_sort("1.7.0-a-0.el7.x86_64", "1.7.0-b-0.el7.x86_64")
|
| |
- self.assertEquals(a, 1)
|
| |
- a=funcs.version_sort("1.7.0-az-0.el7.x86_64", "1.7.0-ax-0.el7.x86_64")
|
| |
- self.assertEquals(a, -1)
|
| |
- a=funcs.version_sort("1.7.0-openjdk-1.7.0.51-2.4.5.5.fc21.i386", "1.7.0-openjdk")
|
| |
- self.assertEquals(a, 0) # see comment in version_sort
|
| |
- a=funcs.version_sort("1.7.0-oracle", "1.7.0-openjdk.x86_64")
|
| |
- self.assertEquals(a, -1)
|
| |
-
|
| |
-
|
| |
-
|
| |
-
|
| |
-
|
| |
-
|
| |
-
|
| |
-
|
| |
+ def test_version_sort_key(self):
|
| |
+ # Test function itself
|
| |
+ a=funcs.version_sort_key("1.7.0-openjdk-1.el7.x86_64")
|
| |
+ self.assertEquals(a, [1, 7, 0, 'openjdk', 1, 7, 0, 'openjdk', 1, 'el7', 'x86_64'])
|
| |
+ a=funcs.version_sort_key("1.7.0-openjdk-01.el7.x86_64")
|
| |
+ self.assertEquals(a, [1, 7, 0, 'openjdk', 1, 7, 0, 'openjdk', 1, 'el7', 'x86_64'])
|
| |
+ a=funcs.version_sort_key("1.7.0-openjdk-00001.el7.x86_64")
|
| |
+ self.assertEquals(a, [1, 7, 0, 'openjdk', 1, 7, 0, 'openjdk', 1, 'el7', 'x86_64'])
|
| |
+
|
| |
+ # Test sorting using this function
|
| |
+ a=sorted(["1.7.0-openjdk-2.el7.x86_64", "1.7.0-openjdk-1.el7.x86_64"], key=funcs.version_sort_key)
|
| |
+ self.assertEquals(a, ['1.7.0-openjdk-1.el7.x86_64', '1.7.0-openjdk-2.el7.x86_64'])
|
| |
+ a=sorted(["1.7.0-openjdk-2.el7.x86_64", "1.7.0-openjdk-3.el7.x86_64"], key=funcs.version_sort_key)
|
| |
+ self.assertEquals(a, ['1.7.0-openjdk-2.el7.x86_64', '1.7.0-openjdk-3.el7.x86_64'])
|
| |
+ a=sorted(["1.7.0-a-0.el7.x86_64", "1.7.0-b-0.el7.x86_64"], key=funcs.version_sort_key)
|
| |
+ self.assertEquals(a, ['1.7.0-a-0.el7.x86_64', '1.7.0-b-0.el7.x86_64'])
|
| |
+ a=sorted(["1.7.0-az-0.el7.x86_64", "1.7.0-ax-0.el7.x86_64"], key=funcs.version_sort_key)
|
| |
+ self.assertEquals(a, ['1.7.0-ax-0.el7.x86_64', '1.7.0-az-0.el7.x86_64'])
|
| |
+ a=sorted(["1.7.0-oracle", "1.7.0-openjdk.x86_64"], key=funcs.version_sort_key)
|
| |
+ self.assertEquals(a, ['1.7.0-openjdk.x86_64', '1.7.0-oracle'])
|
| |
With these changes,
system-switch-java
is compatible with Python 2 and 3. All tests are passing with both Pythons and also some basic scenarios described in this bugzilla work for me.Let me know if I can help or clarify anything.