Example #1
0
 def test_install_package_with_alternatives_calls_try_alternatives_if_default_package_installation_failed(
         self, mock, mocked_wrapper, mocked_try_package):
     mocked_try_package.side_effect = PackageInstallationFailureError(self.package_with_alternatives.name)
     installer_with_alternatives = PackageInstaller(self.package_with_alternatives, mocked_wrapper)
     installer_with_alternatives.install_package_with_alternatives()
     self.assertTrue(mock.called)
Example #2
0
 def test_try_alternative_package_calls_install_on_wrapper(self):
     with patch('src.domain.distro.debian.debian_install_package_management_wrapper.DebianInstallPackageManagementWrapper') as mock:
         installer_without_alternatives = PackageInstaller(self.package_without_alternatives, mock)
         installer_without_alternatives.try_alternative_package("alternative1")
         mock.install.assert_called_with()
Example #3
0
 def test_install_calls_try_package_if_no_alternatives(self, mock, mocked_wrapper):
     installer_without_alternatives = PackageInstaller(self.package_without_alternatives, mocked_wrapper)
     installer_without_alternatives.install()
     self.assertTrue(mock.called)
Example #4
0
 def test_install_calls_install_package_with_alternatives_if_alternatives_provided(self, mock, mocked_wrapper):
     installer_with_alternatives = PackageInstaller(self.package_with_alternatives, mocked_wrapper)
     installer_with_alternatives.install()
     self.assertTrue(mock.called)
Example #5
0
 def test_try_alternatives_stops_at_first_success(self, mocked_wrapper, mocked_try_alternative_package):
     installer_with_alternatives = PackageInstaller(self.package_with_alternatives, mocked_wrapper)
     installer_with_alternatives.try_alternatives()
     self.assertEqual(1, mocked_try_alternative_package.call_count)
Example #6
0
 def test_try_alternatives_raises_NoAlternativePackageSuitableError_if_all_alternatives_failed(self):
     with patch('src.domain.distro.debian.debian_install_package_management_wrapper.DebianInstallPackageManagementWrapper') as mock:
         mock.install.side_effect = PackageInstallationFailureError("fake alternative")
         installer_with_alternatives = PackageInstaller(self.package_with_alternatives, mock)
         with self.assertRaises(NoAlternativePackageSuitableError):
             installer_with_alternatives.try_alternatives()
Example #7
0
 def install(self):
     self.logger.info("Starting installation:\t "+self.software_catalog.name)
     for package in self.software_catalog.packages:
         package_installer = PackageInstaller(package, self.install_package_management_wrapper)
         package_installer.install()
         package.handle_post_installation()