Index: Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py |
diff --git a/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py b/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py |
index c892f25826fec3a55d3d92902e232dd4224b0ba0..cd69a02f72c607679fd6ad9fdf2d37608f4bd005 100644 |
--- a/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py |
+++ b/Tools/Scripts/webkitpy/common/system/platforminfo_unittest.py |
@@ -32,6 +32,8 @@ import unittest |
from webkitpy.common.system.executive import Executive |
from webkitpy.common.system.executive_mock import MockExecutive, MockExecutive2 |
+from webkitpy.common.system.filesystem import FileSystem |
+from webkitpy.common.system.filesystem_mock import MockFileSystem |
from webkitpy.common.system.platforminfo import PlatformInfo |
@@ -67,18 +69,21 @@ def fake_executive(output=None): |
class TestPlatformInfo(unittest.TestCase): |
- def make_info(self, sys_module=None, platform_module=None, executive=None): |
- return PlatformInfo(sys_module or fake_sys(), platform_module or fake_platform(), executive or fake_executive()) |
+ def make_info(self, sys_module=None, platform_module=None, filesystem_module=None, executive=None): |
+ return PlatformInfo(sys_module or fake_sys(), platform_module or fake_platform(), filesystem_module or MockFileSystem(), executive or fake_executive()) |
def test_real_code(self): |
# This test makes sure the real (unmocked) code actually works. |
- info = PlatformInfo(sys, platform, Executive()) |
+ info = PlatformInfo(sys, platform, FileSystem(), Executive()) |
self.assertNotEquals(info.os_name, '') |
self.assertNotEquals(info.os_version, '') |
self.assertNotEquals(info.display_name(), '') |
self.assertTrue(info.is_mac() or info.is_win() or info.is_linux() or info.is_freebsd()) |
self.assertIsNotNone(info.terminal_width()) |
+ if info.is_linux(): |
+ self.assertIsNotNone(info.linux_distribution()) |
+ |
if info.is_mac(): |
self.assertTrue(info.total_bytes_memory() > 0) |
else: |
@@ -154,6 +159,19 @@ class TestPlatformInfo(unittest.TestCase): |
self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_executive('6.0.1234')).os_version, 'vista') |
self.assertEqual(self.make_info(fake_sys('cygwin'), executive=fake_executive('5.1.1234')).os_version, 'xp') |
+ def _assert_file_implies_linux_distribution(self, file, distribution): |
+ info = self.make_info(sys_module=fake_sys('linux2'), filesystem_module=MockFileSystem({file: ''})) |
+ self.assertEqual(info.linux_distribution(), distribution) |
+ |
+ def test_linux_distro_detection(self): |
+ self._assert_file_implies_linux_distribution('/etc/arch-release', 'arch') |
+ self._assert_file_implies_linux_distribution('/etc/debian_version', 'debian') |
+ self._assert_file_implies_linux_distribution('/etc/redhat-release', 'redhat') |
+ self._assert_file_implies_linux_distribution('/etc/mock-release', 'unknown') |
+ |
+ info = self.make_info(fake_sys('cygwin'), executive=fake_executive('6.1.7600')) |
+ self.assertIsNone(info.linux_distribution()) |
+ |
def test_display_name(self): |
info = self.make_info(fake_sys('darwin')) |
self.assertNotEquals(info.display_name(), '') |
@@ -168,7 +186,7 @@ class TestPlatformInfo(unittest.TestCase): |
self.assertNotEquals(info.display_name(), '') |
def test_total_bytes_memory(self): |
- info = self.make_info(fake_sys('darwin'), fake_platform('10.6.3'), fake_executive('1234')) |
+ info = self.make_info(fake_sys('darwin'), fake_platform('10.6.3'), executive=fake_executive('1234')) |
self.assertEqual(info.total_bytes_memory(), 1234) |
info = self.make_info(fake_sys('win32', tuple([6, 1, 7600]))) |