def test_should_not_load_module_after_downloading_when_download_fails(self, install, load): install.side_effect = MissingPluginException("BOOM") downloader = DownloadingPluginLoader(Mock()) plugin = downloader.load_plugin(Mock(), "pypi:external_plugin") self.assertFalse(load.called) self.assertEquals(plugin, None)
def test_should_load_module_after_downloading_with_vcs_when_download_succeeds(self, _, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) plugin = downloader.load_plugin(project, "vcs:external_plugin URL", plugin_module_name="external_plugin_module") load.assert_called_with("external_plugin_module", "vcs:external_plugin URL") self.assertEquals(plugin, load.return_value)
def test_should_load_module_after_downloading_when_download_succeeds(self, _, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) plugin = downloader.load_plugin(project, "pypi:external_plugin") load.assert_called_with(downloader, project, "pypi:external_plugin") self.assertEquals(plugin, load.return_value)
def test_should_load_module_after_downloading_with_vcs_when_download_succeeds(self, _, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) plugin = downloader.load_plugin(project, "vcs:external_plugin URL", plugin_module_name="external_plugin_module") load.assert_called_with("external_plugin_module", "vcs:external_plugin URL") self.assertEqual(plugin, load.return_value)
def test_should_update_pypi_plugin_with_non_exact_version_before_first_loading_attempt(self, install, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) load.return_value = Mock() self.assertEquals(load.return_value, downloader.load_plugin(project, "pypi:spam", ">1.2")) install.assert_called_with(project, "pypi:spam", ">1.2", downloader.logger, None, True, False) self.assertEquals(install.call_count, 1)
def test_should_force_reinstall_vcs_plugin_before_first_loading_attempt(self, install, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) load.return_value = Mock() self.assertEquals(load.return_value, downloader.load_plugin(project, "vcs:spam", plugin_module_name="spam")) install.assert_called_with(project, "vcs:spam", None, downloader.logger, "spam", False, True) self.assertEquals(install.call_count, 1)
def test_should_import_plugin_when_requiring_plugin_and_plugin_is_found_as_third_party(self, install, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) load.return_value = Mock() self.assertEquals(load.return_value, downloader.load_plugin(project, "spam")) install.assert_not_called() self.assertEquals(install.call_count, 0)
def test_should_update_pypi_plugin_with_non_exact_version_before_first_loading_attempt(self, install, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) load.return_value = Mock() self.assertEqual(load.return_value, downloader.load_plugin(project, "pypi:spam", ">1.2")) install.assert_called_with(project, "pypi:spam", ">1.2", downloader.logger, None, True, False) self.assertEqual(install.call_count, 1)
def test_should_force_reinstall_vcs_plugin_before_first_loading_attempt(self, install, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) load.return_value = Mock() self.assertEqual(load.return_value, downloader.load_plugin(project, "vcs:spam", plugin_module_name="spam")) install.assert_called_with(project, "vcs:spam", None, downloader.logger, "spam", False, True) self.assertEqual(install.call_count, 1)
def test_should_import_plugin_when_requiring_plugin_and_plugin_is_found_as_third_party(self, install, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) load.return_value = Mock() self.assertEqual(load.return_value, downloader.load_plugin(project, "spam")) install.assert_not_called() self.assertEqual(install.call_count, 0)
def test_should_not_update_pypi_plugin_with_exact_version_before_first_loading_attempt(self, install, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) plugin = Mock() load.side_effect = (MissingPluginException("no spam installed"), plugin) self.assertEquals(plugin, downloader.load_plugin(project, "pypi:spam", "===1.4")) install.assert_called_with(project, "pypi:spam", "===1.4", downloader.logger, None) self.assertEquals(install.call_count, 1)
def test_should_not_update_pypi_plugin_with_exact_version_before_first_loading_attempt(self, install, load): project = Mock() downloader = DownloadingPluginLoader(Mock()) plugin = Mock() load.side_effect = (MissingPluginException("no spam installed"), plugin) self.assertEqual(plugin, downloader.load_plugin(project, "pypi:spam", "===1.4")) install.assert_called_with(project, "pypi:spam", "===1.4", downloader.logger, None) self.assertEqual(install.call_count, 1)
def test_should_load_module_after_downloading_with_pypi_when_download_succeeds( self, load): logger = Mock() reactor = Mock() pyb_env = Mock() reactor.python_env_registry = {"pybuilder": pyb_env} reactor.pybuilder_venv = pyb_env downloader = DownloadingPluginLoader(logger) pd = PluginDef("pypi:external_plugin") plugin = downloader.load_plugin(reactor, pd) load.assert_called_with("external_plugin", pd.name) self.assertEqual(plugin, load.return_value)
def test_should_import_plugin_when_requiring_plugin_and_plugin_is_found_as_third_party( self, load): logger = Mock() reactor = Mock() pyb_env = Mock() reactor.python_env_registry = {"pybuilder": pyb_env} reactor.pybuilder_venv = pyb_env load.return_value = Mock() downloader = DownloadingPluginLoader(logger) self.assertEqual(load.return_value, downloader.load_plugin(reactor, PluginDef("spam"))) pyb_env.install_dependencies.assert_not_called() self.assertEqual(pyb_env.install_dependencies.call_count, 0)