def test_windows(self): self._uname = None self._version = None with mock.patch("platform.system", mock.MagicMock(return_value='Windows')): with mock.patch.object(OSInfo, "get_win_version_name", return_value="Windows 98"): with mock.patch.object(OSInfo, "get_win_os_version", return_value="4.0"): with remove_from_path("uname"): with remove_from_path("bash"): # FIXME: bug in environment_append removing variables which aren't exist (another PR) new_env = dict() if 'CONAN_BASH_PATH' in os.environ: new_env['CONAN_BASH_PATH'] = None with environment_append(new_env): self.assertTrue(OSInfo().is_windows) self.assertFalse(OSInfo().is_cygwin) self.assertFalse(OSInfo().is_msys) self.assertFalse(OSInfo().is_linux) self.assertFalse(OSInfo().is_freebsd) self.assertFalse(OSInfo().is_macos) self.assertFalse(OSInfo().is_solaris) with self.assertRaises(ConanException): OSInfo.uname() self.assertIsNone( OSInfo.detect_windows_subsystem())
def test_solaris(self): with mock.patch("platform.system", mock.MagicMock(return_value='SunOS')): self.assertFalse(OSInfo().is_windows) self.assertFalse(OSInfo().is_cygwin) self.assertFalse(OSInfo().is_msys) self.assertFalse(OSInfo().is_linux) self.assertFalse(OSInfo().is_freebsd) self.assertFalse(OSInfo().is_macos) self.assertTrue(OSInfo().is_solaris) with self.assertRaises(ConanException): OSInfo.uname() self.assertIsNone(OSInfo.detect_windows_subsystem())
def test_msys2(self): self._uname = 'MSYS_NT-10.0' self._version = '1.0.18(0.48/3/2)' with mock.patch("platform.system", mock.MagicMock(return_value=self._uname)): with mock.patch.object(OSInfo, "get_win_version_name", return_value="Windows 98"): with mock.patch.object(OSInfo, "get_win_os_version", return_value="4.0"): self.assertTrue(OSInfo().is_windows) self.assertFalse(OSInfo().is_cygwin) self.assertTrue(OSInfo().is_msys) self.assertFalse(OSInfo().is_linux) self.assertFalse(OSInfo().is_freebsd) self.assertFalse(OSInfo().is_macos) self.assertFalse(OSInfo().is_solaris) with environment_append( {"CONAN_BASH_PATH": "/fake/bash.exe"}): with mock.patch('subprocess.check_output', new=self.subprocess_check_output_mock): self.assertEqual(OSInfo.uname(), self._uname.lower()) self.assertEqual(OSInfo.detect_windows_subsystem(), MSYS)
def test_windows(self): self._uname = None self._version = None with mock.patch("platform.system", mock.MagicMock(return_value='Windows')): with remove_from_path("uname"): with remove_from_path("bash"): with environment_append({'CONAN_BASH_PATH': None}): self.assertTrue(OSInfo().is_windows) self.assertFalse(OSInfo().is_cygwin) self.assertFalse(OSInfo().is_msys) self.assertFalse(OSInfo().is_linux) self.assertFalse(OSInfo().is_freebsd) self.assertFalse(OSInfo().is_macos) self.assertFalse(OSInfo().is_solaris) with self.assertRaises(ConanException): OSInfo.uname() self.assertIsNone(OSInfo.detect_windows_subsystem())
def test_wsl(self): from six.moves import builtins with mock.patch("platform.system", mock.MagicMock(return_value='Linux')): with mock.patch.object(OSInfo, '_get_linux_distro_info'): self.assertFalse(OSInfo().is_windows) self.assertFalse(OSInfo().is_cygwin) self.assertFalse(OSInfo().is_msys) self.assertTrue(OSInfo().is_linux) self.assertFalse(OSInfo().is_freebsd) self.assertFalse(OSInfo().is_macos) self.assertFalse(OSInfo().is_solaris) with self.assertRaises(ConanException): OSInfo.uname() with mock.patch.object(builtins, "open", mock.mock_open(read_data="4.4.0-43-Microsoft")): self.assertEqual(OSInfo.detect_windows_subsystem(), WSL)
def test_aix(self): self._uname = 'AIX' self._version = '7.1.0.0' with mock.patch("platform.system", mock.MagicMock(return_value='AIX')), \ mock.patch('conans.client.tools.oss.check_output', new=self.subprocess_check_output_mock): self.assertFalse(OSInfo().is_windows) self.assertFalse(OSInfo().is_cygwin) self.assertFalse(OSInfo().is_msys) self.assertFalse(OSInfo().is_linux) self.assertFalse(OSInfo().is_freebsd) self.assertFalse(OSInfo().is_macos) self.assertFalse(OSInfo().is_solaris) self.assertTrue(OSInfo().is_aix) self.assertEqual(OSInfo().os_version_name, 'AIX 7.1') with self.assertRaises(ConanException): OSInfo.uname() self.assertIsNone(OSInfo.detect_windows_subsystem())
def test_mingw32(self): self._uname = 'MINGW32_NT-10.0' self._version = '2.10.0(0.325/5/3)' with mock.patch("platform.system", mock.MagicMock(return_value=self._uname)): self.assertTrue(OSInfo().is_windows) self.assertFalse(OSInfo().is_cygwin) self.assertTrue(OSInfo().is_msys) self.assertFalse(OSInfo().is_linux) self.assertFalse(OSInfo().is_freebsd) self.assertFalse(OSInfo().is_macos) self.assertFalse(OSInfo().is_solaris) with environment_append({"CONAN_BASH_PATH": "/fake/bash.exe"}): with mock.patch('conans.client.tools.oss.check_output', new=self.subprocess_check_output_mock): self.assertEqual(OSInfo.uname(), self._uname.lower()) self.assertEqual(OSInfo.detect_windows_subsystem(), MSYS2)