Example #1
0
    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())
Example #2
0
    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())
Example #3
0
    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)
Example #4
0
    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())
Example #5
0
    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)
Example #6
0
    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())
Example #7
0
    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)