Beispiel #1
0
 def test_empty_variants_and_packages(self):
     packages = [(),]
     with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}):
         runner = RunnerMultipleMock()
         spt = SystemPackageTool(runner=runner, tool=AptTool(output=self.out),
                                 output=self.out)
         spt.install_packages(packages)
         self.assertEqual(0, runner.calls)
Beispiel #2
0
 def test_install_all_multiple_package_list(self):
     """ Separated string list must be treated as full package list to be installed
     """
     packages = "varianta variantb", "variantc variantd"
     runner = RunnerMultipleMock([])
     spt = SystemPackageTool(runner=runner, tool=AptTool(output=self.out), output=self.out)
     with self.assertRaises(ConanException) as error:
         spt.install_packages(packages)
         self.assertEqual("Each string must contain only one package to be installed."
                          " Use a list instead e.g. ['foo', 'bar'].", str(error.exception))
Beispiel #3
0
 def test_install_all_packages(self):
     """ SystemPackageTool must install all packages
     """
     # No packages installed
     packages = ["a_package", "another_package", "yet_another_package"]
     with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}):
         runner = RunnerMultipleMock(["sudo -A apt-get update",
                                      "sudo -A apt-get install -y --no-install-recommends"
                                      " a_package another_package yet_another_package",
                                      ])
         spt = SystemPackageTool(runner=runner, tool=AptTool(output=self.out), output=self.out)
         spt.install_packages(packages)
         self.assertEqual(5, runner.calls)
Beispiel #4
0
 def test_installed_variant_and_install_packages(self):
     """ Only packages must be installed. Variants are already installed
     """
     packages = [("varianta", "variantb", "variantc"), "a_package", "another_package"]
     with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}):
         runner = RunnerMultipleMock(['dpkg-query -W -f=\'${Status}\' varianta | '
                                      'grep -q "ok installed"',
                                      "sudo -A apt-get update",
                                      "sudo -A apt-get install -y --no-install-recommends"
                                      " a_package another_package",
                                      ])
         spt = SystemPackageTool(runner=runner, tool=AptTool(output=self.out), output=self.out)
         spt.install_packages(packages)
         self.assertEqual(5, runner.calls)
Beispiel #5
0
 def test_install_few_packages(self):
     """ SystemPackageTool must install 2 packages only
     """
     packages = ["a_package", "another_package", "yet_another_package"]
     with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}):
         runner = RunnerMultipleMock(['dpkg-query -W -f=\'${Status}\' a_package | '
                                      'grep -q "ok installed"',
                                      "sudo -A apt-get update",
                                      "sudo -A apt-get install -y --no-install-recommends"
                                      " another_package yet_another_package",
                                      ])
         spt = SystemPackageTool(runner=runner, tool=AptTool(output=self.out), output=self.out)
         spt.install_packages(packages)
         self.assertEqual(5, runner.calls)
Beispiel #6
0
 def test_variants_and_packages_installed(self):
     """ Install nothing, all is already installed
     """
     packages = [("varianta", "variantb", "variantc"), "a_package", "another_package"]
     with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}):
         runner = RunnerMultipleMock(['dpkg-query -W -f=\'${Status}\' varianta | '
                                      'grep -q "ok installed"',
                                      'dpkg-query -W -f=\'${Status}\' a_package | '
                                      'grep -q "ok installed"',
                                      'dpkg-query -W -f=\'${Status}\' another_package | '
                                      'grep -q "ok installed"',
                                      ])
         spt = SystemPackageTool(runner=runner, tool=AptTool(output=self.out), output=self.out)
         spt.install_packages(packages)
         self.assertEqual(3, runner.calls)
Beispiel #7
0
 def test_install_variants_and_packages(self):
     """ SystemPackageTool must install one of variants and all packages at same list
     """
     packages = [("varianta", "variantb", "variantc"), "a_package", "another_package"]
     with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}):
         runner = RunnerMultipleMock(["sudo -A apt-get update",
                                      "sudo -A apt-get install -y --no-install-recommends"
                                      " varianta",
                                      "sudo -A apt-get update",
                                      "sudo -A apt-get install -y --no-install-recommends"
                                      " a_package another_package",
                                      ])
         spt = SystemPackageTool(runner=runner, tool=AptTool(output=self.out), output=self.out)
         spt.install_packages(packages)
         self.assertEqual(8, runner.calls)
Beispiel #8
0
 def test_packages_installed(self):
     """ SystemPackageTool must not install. All packages are installed.
     """
     packages = ["a_package", "another_package", "yet_another_package"]
     with tools.environment_append({"CONAN_SYSREQUIRES_SUDO": "True"}):
         runner = RunnerMultipleMock(['dpkg-query -W -f=\'${Status}\' a_package | '
                                      'grep -q "ok installed"',
                                      'dpkg-query -W -f=\'${Status}\' another_package | '
                                      'grep -q "ok installed"',
                                      'dpkg-query -W -f=\'${Status}\' yet_another_package | '
                                      'grep -q "ok installed"',
                                      ])
         spt = SystemPackageTool(runner=runner, tool=AptTool(output=self.out), output=self.out)
         spt.install_packages(packages)
         self.assertEqual(3, runner.calls)