def system_package_tool_fail_when_not_0_returned_test(self): def get_linux_error_message(): """ Get error message for Linux platform if distro is supported, None otherwise """ os_info = OSInfo() update_command = None if os_info.with_apt: update_command = "sudo apt-get update" elif os_info.with_yum: update_command = "sudo yum check-update" elif os_info.with_zypper: update_command = "sudo zypper --non-interactive ref" elif os_info.with_pacman: update_command = "sudo pacman -Syyu --noconfirm" return "Command '{0}' failed".format(update_command) if update_command is not None else None platform_update_error_msg = { "Linux": get_linux_error_message(), "Darwin": "Command 'brew update' failed", "Windows": "Command 'choco outdated' failed" if which("choco.exe") else None, } runner = RunnerMock(return_ok=False) pkg_tool = ChocolateyTool() if which("choco.exe") else None spt = SystemPackageTool(runner=runner, tool=pkg_tool) msg = platform_update_error_msg.get(platform.system(), None) if msg is not None: with self.assertRaisesRegexp(ConanException, msg): spt.update() else: spt.update() # Won't raise anything because won't do anything
def system_requirements(self): if self.settings.os == 'Linux': installer = SystemPackageTool() installer.update() installer.install("libxaw7-dev") installer.install("libxt-dev") installer.install("libxrandr-dev")
def system_requirements(self): spt = SystemPackageTool() pack_names = [] if not os_info.is_linux: return if os_info.linux_distro == "ubuntu": suffix_32 = ":i386" elif "opensuse" in os_info.linux_distro: suffix_32 = "-32bit" else: suffix_32 = "" if os_info.linux_distro == "ubuntu": if self.options.openGL: pack_names.extend(["libgl1-mesa-dev", "libglu1-mesa-dev", "freeglut3-dev", "libgl1-mesa-glx"]) pack_names.append("libxmu-dev") elif "opensuse" in os_info.linux_distro: if self.options.openGL: pack_names.extend(["Mesa-libGL-devel"]) pack_names.append("libXmu-devel") else: self.output.error("distro: %s" % os_info.linux_distro) pack_names = [] spt.update() for pack in pack_names: if self.settings.arch == "x86": spt.install(pack + suffix_32) else: spt.install(pack)
def system_package_tool_fail_when_not_0_returned_test(self): runner = RunnerMock(return_ok=False) spt = SystemPackageTool(runner=runner) if platform.system() == "Linux" or platform.system() == "Darwin": msg = "Command 'sudo apt-get update' failed" if platform.system() == "Linux" \ else "Command 'brew update' failed" with self.assertRaisesRegexp(ConanException, msg): spt.update() else: spt.update() # Won't raise anything because won't do anything
def system_requirements(self): pack_names = None if os_info.linux_distro == "ubuntu": pack_names = "libgtk2.0-dev", "pkg-config" if pack_names: installer = SystemPackageTool() installer.update() # Update the package database for pack_name in pack_names: installer.install(pack_name) # Install the package
def system_requirements(self): pack_names = None if os_info.linux_distro == "ubuntu": pack_names = [ "freeglut3-dev", "mesa-common-dev", "mesa-utils-extra", "libgl1-mesa-dev", "libglapi-mesa" ] if self.settings.arch == "x86": full_pack_names = [] for pack_name in pack_names: full_pack_names += [pack_name + ":i386"] pack_names = full_pack_names if pack_names: installer = SystemPackageTool() installer.update() # Update the package database installer.install(" ".join(pack_names)) # Install the package
def system_requirements(self): pack_names = None if os_info.linux_distro == "ubuntu": pack_names = ["libgl1-mesa-dev", "libxcb1", "libxcb1-dev", "libx11-xcb1", "libx11-xcb-dev", "libxcb-keysyms1", "libxcb-keysyms1-dev", "libxcb-image0", "libxcb-image0-dev", "libxcb-shm0", "libxcb-shm0-dev", "libxcb-icccm4", "libxcb-icccm4-dev", "libxcb-sync1", "libxcb-sync-dev", "libxcb-xfixes0-dev", "libxrender-dev", "libxcb-shape0-dev", "libxcb-randr0-dev", "libxcb-render-util0", "libxcb-render-util0-dev", "libxcb-glx0-dev", "libxcb-xinerama0", "libxcb-xinerama0-dev"] if self.settings.arch == "x86": full_pack_names = [] for pack_name in pack_names: full_pack_names += [pack_name + ":i386"] pack_names = full_pack_names if pack_names: installer = SystemPackageTool() installer.update() # Update the package database installer.install(" ".join(pack_names)) # Install the package
def system_requirements(self): pack_names = None if os_info.linux_distro == "ubuntu": pack_names = [ "libgl1-mesa-dev", "libxcb1", "libxcb1-dev", "libx11-xcb1", "libx11-xcb-dev", "libxcb-keysyms1", "libxcb-keysyms1-dev", "libxcb-image0", "libxcb-image0-dev", "libxcb-shm0", "libxcb-shm0-dev", "libxcb-icccm4", "libxcb-icccm4-dev", "libxcb-sync1", "libxcb-sync-dev", "libxcb-xfixes0-dev", "libxrender-dev", "libxcb-shape0-dev", "libxcb-randr0-dev", "libxcb-render-util0", "libxcb-render-util0-dev", "libxcb-glx0-dev", "libxcb-xinerama0", "libxcb-xinerama0-dev" ] if self.settings.arch == "x86": full_pack_names = [] for pack_name in pack_names: full_pack_names += [pack_name + ":i386"] pack_names = full_pack_names if pack_names: installer = SystemPackageTool() installer.update() # Update the package database installer.install(" ".join(pack_names)) # Install the package
def system_package_tool_fail_when_not_0_returned_test(self): runner = RunnerMock(return_ok=False) spt = SystemPackageTool(runner=runner) platforms = {"Linux": "sudo apt-get update", "Darwin": "brew update"} if platform.system() in platforms: msg = "Command '%s' failed" % platforms[platform.system()] with self.assertRaisesRegexp(ConanException, msg): spt.update() elif platform.system() == "Windows" and which("choco.exe"): spt = SystemPackageTool(runner=runner, tool=ChocolateyTool()) with self.assertRaisesRegexp(ConanException, "Command 'choco outdated' failed"): spt.update() else: spt.update() # Won't raise anything because won't do anything
def system_package_tool_test(self): with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}): runner = RunnerMock() # fake os info to linux debian, default sudo os_info = OSInfo() os_info.is_macos = False os_info.is_linux = True os_info.is_windows = False os_info.linux_distro = "debian" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") os_info.linux_distro = "ubuntu" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") os_info.linux_distro = "knoppix" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") os_info.linux_distro = "fedora" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo yum check-update") os_info.linux_distro = "opensuse" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo zypper --non-interactive ref") os_info.linux_distro = "redhat" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.install("a_package", force=False) self.assertEquals(runner.command_called, "rpm -q a_package") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "sudo yum install -y a_package") os_info.linux_distro = "debian" spt = SystemPackageTool(runner=runner, os_info=os_info) with self.assertRaises(ConanException): runner.return_ok = False spt.install("a_package") self.assertEquals( runner.command_called, "sudo apt-get install -y --no-install-recommends a_package" ) runner.return_ok = True spt.install("a_package", force=False) self.assertEquals(runner.command_called, "dpkg -s a_package") os_info.is_macos = True os_info.is_linux = False os_info.is_windows = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "brew update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "brew install a_package") os_info.is_freebsd = True os_info.is_macos = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo pkg update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "sudo pkg install -y a_package") spt.install("a_package", force=False) self.assertEquals(runner.command_called, "pkg info a_package") # Chocolatey is an optional package manager on Windows if platform.system() == "Windows" and which("choco.exe"): os_info.is_freebsd = False os_info.is_windows = True spt = SystemPackageTool(runner=runner, os_info=os_info, tool=ChocolateyTool()) spt.update() self.assertEquals(runner.command_called, "choco outdated") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "choco install --yes a_package") spt.install("a_package", force=False) self.assertEquals( runner.command_called, 'choco search --local-only --exact a_package | findstr /c:"1 packages installed."' ) with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "False"}): os_info = OSInfo() os_info.is_linux = True os_info.linux_distro = "redhat" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.install("a_package", force=True) self.assertEquals(runner.command_called, "yum install -y a_package") spt.update() self.assertEquals(runner.command_called, "yum check-update") os_info.linux_distro = "ubuntu" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.install("a_package", force=True) self.assertEquals( runner.command_called, "apt-get install -y --no-install-recommends a_package") spt.update() self.assertEquals(runner.command_called, "apt-get update") os_info.is_macos = True os_info.is_linux = False os_info.is_windows = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "brew update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "brew install a_package") os_info.is_freebsd = True os_info.is_macos = False os_info.is_windows = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "pkg update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "pkg install -y a_package") spt.install("a_package", force=False) self.assertEquals(runner.command_called, "pkg info a_package") os_info.is_solaris = True os_info.is_freebsd = False os_info.is_windows = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "pkgutil --catalog") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "pkgutil --install --yes a_package") with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}): # Chocolatey is an optional package manager on Windows if platform.system() == "Windows" and which("choco.exe"): os_info.is_solaris = False os_info.is_windows = True spt = SystemPackageTool(runner=runner, os_info=os_info, tool=ChocolateyTool()) spt.update() self.assertEquals(runner.command_called, "choco outdated") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "choco install --yes a_package") spt.install("a_package", force=False) self.assertEquals( runner.command_called, 'choco search --local-only --exact a_package | findstr /c:"1 packages installed."' )
def system_requirements(self): if self.settings.os == "Linux": installer = SystemPackageTool() installer.update() installer.install("libx11-dev")
def system_package_tool_test(self): with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}): runner = RunnerMock() # fake os info to linux debian, default sudo os_info = OSInfo() os_info.is_macos = False os_info.is_linux = True os_info.is_windows = False os_info.linux_distro = "debian" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") os_info.linux_distro = "ubuntu" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") os_info.linux_distro = "knoppix" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") os_info.linux_distro = "fedora" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo yum check-update") os_info.linux_distro = "opensuse" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo zypper --non-interactive ref") os_info.linux_distro = "redhat" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.install("a_package", force=False) self.assertEquals(runner.command_called, "rpm -q a_package") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "sudo yum install -y a_package") os_info.linux_distro = "debian" spt = SystemPackageTool(runner=runner, os_info=os_info) with self.assertRaises(ConanException): runner.return_ok = False spt.install("a_package") self.assertEquals(runner.command_called, "sudo apt-get install -y --no-install-recommends a_package") runner.return_ok = True spt.install("a_package", force=False) self.assertEquals(runner.command_called, "dpkg -s a_package") os_info.is_macos = True os_info.is_linux = False os_info.is_windows = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "brew update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "brew install a_package") os_info.is_freebsd = True os_info.is_macos = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo pkg update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "sudo pkg install -y a_package") spt.install("a_package", force=False) self.assertEquals(runner.command_called, "pkg info a_package") # Chocolatey is an optional package manager on Windows if platform.system() == "Windows" and which("choco.exe"): os_info.is_freebsd = False os_info.is_windows = True spt = SystemPackageTool(runner=runner, os_info=os_info, tool=ChocolateyTool()) spt.update() self.assertEquals(runner.command_called, "choco outdated") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "choco install --yes a_package") spt.install("a_package", force=False) self.assertEquals(runner.command_called, 'choco search --local-only --exact a_package | findstr /c:"1 packages installed."') with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "False"}): os_info = OSInfo() os_info.is_linux = True os_info.linux_distro = "redhat" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.install("a_package", force=True) self.assertEquals(runner.command_called, "yum install -y a_package") spt.update() self.assertEquals(runner.command_called, "yum check-update") os_info.linux_distro = "ubuntu" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.install("a_package", force=True) self.assertEquals(runner.command_called, "apt-get install -y --no-install-recommends a_package") spt.update() self.assertEquals(runner.command_called, "apt-get update") os_info.is_macos = True os_info.is_linux = False os_info.is_windows = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "brew update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "brew install a_package") os_info.is_freebsd = True os_info.is_macos = False os_info.is_windows = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "pkg update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "pkg install -y a_package") spt.install("a_package", force=False) self.assertEquals(runner.command_called, "pkg info a_package") os_info.is_solaris = True os_info.is_freebsd = False os_info.is_windows = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "pkgutil --catalog") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "pkgutil --install --yes a_package") with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}): # Chocolatey is an optional package manager on Windows if platform.system() == "Windows" and which("choco.exe"): os_info.is_solaris = False os_info.is_windows = True spt = SystemPackageTool(runner=runner, os_info=os_info, tool=ChocolateyTool()) spt.update() self.assertEquals(runner.command_called, "choco outdated") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "choco install --yes a_package") spt.install("a_package", force=False) self.assertEquals(runner.command_called, 'choco search --local-only --exact a_package | findstr /c:"1 packages installed."')
def system_package_tool_test(self): runner = RunnerMock() # fake os info to linux debian, default sudo os_info = OSInfo() os_info.is_linux = True os_info.linux_distro = "debian" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") os_info.linux_distro = "ubuntu" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") os_info.linux_distro = "knoppix" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") os_info.linux_distro = "fedora" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "sudo yum check-update") os_info.linux_distro = "redhat" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.install("a_package", force=False) self.assertEquals(runner.command_called, "rpm -q a_package") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "sudo yum install -y a_package") os_info.linux_distro = "debian" spt = SystemPackageTool(runner=runner, os_info=os_info) with self.assertRaises(ConanException): runner.return_ok = False spt.install("a_package") self.assertEquals(runner.command_called, "sudo apt-get install -y a_package") runner.return_ok = True spt.install("a_package", force=False) self.assertEquals(runner.command_called, "dpkg -s a_package") os_info.is_macos = True os_info.is_linux = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "brew update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "brew install a_package") os.environ["CONAN_SYSREQUIRES_SUDO"] = "False" os_info = OSInfo() os_info.is_linux = True os_info.linux_distro = "redhat" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.install("a_package", force=True) self.assertEquals(runner.command_called, "yum install -y a_package") spt.update() self.assertEquals(runner.command_called, "yum check-update") os_info.linux_distro = "ubuntu" spt = SystemPackageTool(runner=runner, os_info=os_info) spt.install("a_package", force=True) self.assertEquals(runner.command_called, "apt-get install -y a_package") spt.update() self.assertEquals(runner.command_called, "apt-get update") os_info.is_macos = True os_info.is_linux = False spt = SystemPackageTool(runner=runner, os_info=os_info) spt.update() self.assertEquals(runner.command_called, "brew update") spt.install("a_package", force=True) self.assertEquals(runner.command_called, "brew install a_package") del os.environ["CONAN_SYSREQUIRES_SUDO"]
def system_package_tool_test(self): runner = RunnerMock() spt = SystemPackageTool(runner=runner) # fake os info to linux debian, default sudo spt._os_info.is_linux = True spt._os_info.linux_distro = "debian" spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") spt._os_info.linux_distro = "ubuntu" spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") spt._os_info.linux_distro = "knoppix" spt.update() self.assertEquals(runner.command_called, "sudo apt-get update") spt._os_info.linux_distro = "fedora" spt.update() self.assertEquals(runner.command_called, "sudo yum check-update") spt._os_info.linux_distro = "redhat" spt.install("a_package") self.assertEquals(runner.command_called, "sudo yum install -y a_package") spt._os_info.linux_distro = "debian" spt.install("a_package") self.assertEquals(runner.command_called, "sudo apt-get install -y a_package") spt._os_info.is_macos = True spt._os_info.is_linux = False spt.update() self.assertEquals(runner.command_called, "brew update") spt.install("a_package") self.assertEquals(runner.command_called, "brew install a_package") os.environ["CONAN_SYSREQUIRES_SUDO"] = "False" spt = SystemPackageTool(runner=runner) spt._os_info.is_linux = True spt._os_info.linux_distro = "redhat" spt.install("a_package") self.assertEquals(runner.command_called, "yum install -y a_package") spt.update() self.assertEquals(runner.command_called, "yum check-update") spt._os_info.linux_distro = "ubuntu" spt.install("a_package") self.assertEquals(runner.command_called, "apt-get install -y a_package") spt.update() self.assertEquals(runner.command_called, "apt-get update") spt._os_info.is_macos = True spt._os_info.is_linux = False spt.update() self.assertEquals(runner.command_called, "brew update") spt.install("a_package") self.assertEquals(runner.command_called, "brew install a_package") del os.environ["CONAN_SYSREQUIRES_SUDO"]