def test_should_install_dependency_without_version(self):
        dependency = Dependency("spam")

        install_dependency(self.logger, self.project, dependency)

        verify(pythonbuilder.plugins.python.install_dependencies_plugin).execute_command("pip install spam", any_value()
            , shell=True)
    def test_should_install_dependency_with_url_even_if_version_is_given(self):
        dependency = Dependency("spam", version="0.1.2", url="some_url")

        install_dependency(self.logger, self.project, dependency)

        verify(pythonbuilder.plugins.python.install_dependencies_plugin).execute_command("pip install some_url",
            any_value()
            , shell=True)
    def test_should_upgrade_dependencies(self):
        self.project.set_property("install_dependencies_upgrade", True)
        dependency = Dependency("spam")

        install_dependency(self.logger, self.project, dependency)

        verify(pythonbuilder.plugins.python.install_dependencies_plugin).execute_command(
            "pip install --upgrade spam", any_value()
            , shell=True)
    def test_should_not_use_extra_index_url_when_index_url_is_not_set(self):
        self.project.set_property("install_dependencies_extra_index_url", "some_index_url")
        dependency = Dependency("spam")

        install_dependency(self.logger, self.project, dependency)

        verify(pythonbuilder.plugins.python.install_dependencies_plugin).execute_command(
            "pip install spam", any_value()
            , shell=True)
    def test_should_install_dependency_using_custom_index_url(self):
        self.project.set_property("install_dependencies_index_url", "some_index_url")
        dependency = Dependency("spam")

        install_dependency(self.logger, self.project, dependency)

        verify(pythonbuilder.plugins.python.install_dependencies_plugin).execute_command(
            "pip install --index-url some_index_url spam", any_value()
            , shell=True)