diff --git a/poetry/factory.py b/poetry/factory.py index 90c9cec3295..aab9489b364 100644 --- a/poetry/factory.py +++ b/poetry/factory.py @@ -185,7 +185,7 @@ def create_poetry( # Always put PyPI last to prefer private repositories # but only if we have no other default source if not poetry.pool.has_default(): - poetry.pool.add_repository(PyPiRepository(), True) + poetry.pool.add_repository(PyPiRepository(), default=False) else: if io.is_debug(): io.write_line("Deactivating the PyPI repository") diff --git a/tests/fixtures/with_custom_source/README.rst b/tests/fixtures/with_custom_source/README.rst new file mode 100644 index 00000000000..f7fe15470f9 --- /dev/null +++ b/tests/fixtures/with_custom_source/README.rst @@ -0,0 +1,2 @@ +My Package +========== diff --git a/tests/fixtures/with_custom_source/pyproject.toml b/tests/fixtures/with_custom_source/pyproject.toml new file mode 100644 index 00000000000..d4d127de7e1 --- /dev/null +++ b/tests/fixtures/with_custom_source/pyproject.toml @@ -0,0 +1,60 @@ +[tool.poetry] +name = "my-package" +version = "1.2.3" +description = "Some description." +authors = [ + "Sébastien Eustace " +] +license = "MIT" + +readme = "README.rst" + +homepage = "https://python-poetry.org" +repository = "https://github.com/python-poetry/poetry" +documentation = "https://python-poetry.org/docs" + +keywords = ["packaging", "dependency", "poetry"] + +classifiers = [ + "Topic :: Software Development :: Build Tools", + "Topic :: Software Development :: Libraries :: Python Modules" +] + +# Requirements +[tool.poetry.dependencies] +python = "~2.7 || ^3.6" +cleo = "^0.6" +pendulum = { git = "https://github.com/sdispater/pendulum.git", branch = "2.0" } +requests = { version = "^2.18", optional = true, extras=[ "security" ] } +pathlib2 = { version = "^2.2", python = "~2.7" } + +orator = { version = "^0.9", optional = true } + +# File dependency +demo = { path = "../distributions/demo-0.1.0-py2.py3-none-any.whl" } + +# Dir dependency with setup.py +my-package = { path = "../project_with_setup/" } + +# Dir dependency with pyproject.toml +simple-project = { path = "../simple_project/" } + + +[tool.poetry.extras] +db = [ "orator" ] + +[tool.poetry.dev-dependencies] +pytest = "~3.4" + + +[tool.poetry.scripts] +my-script = "my_package:main" + + +[tool.poetry.plugins."blogtool.parsers"] +".rst" = "some_module::SomeClass" + + +[[tool.poetry.source]] +name = "foo" +url = "https://foo.bar/simple/" diff --git a/tests/test_factory.py b/tests/test_factory.py index bf3493ae5fa..a334ef9b9ef 100644 --- a/tests/test_factory.py +++ b/tests/test_factory.py @@ -155,6 +155,14 @@ def test_poetry_with_two_default_sources(): assert "Only one repository can be the default" == str(e.value) +def test_poetry_with_custom_source(): + poetry = Factory().create_poetry(fixtures_dir / "with_custom_source") + + assert ["foo", "PyPI"] == [ + repository.name for repository in poetry.pool.repositories + ] + + def test_validate(): complete = TomlFile(fixtures_dir / "complete.toml") content = complete.read()["tool"]["poetry"]