mirror of
https://github.com/kennethreitz/pipenv.git
synced 2026-06-05 14:50:16 +00:00
change category to categories
This commit is contained in:
@@ -740,9 +740,9 @@ def verify(state):
|
||||
)
|
||||
@option("--hash", is_flag=True, default=False, help="Add package hashes.")
|
||||
@option("--exclude-markers", is_flag=True, default=False, help="Exclude markers.")
|
||||
@option("--category", is_flag=False, default='', help="Only add requirement of the specified category.")
|
||||
@option("--categories", is_flag=False, default='', help="Only add requirement of the specified categories.")
|
||||
@pass_state
|
||||
def requirements(state, dev=False, dev_only=False, hash=False, exclude_markers=False, category=''):
|
||||
def requirements(state, dev=False, dev_only=False, hash=False, exclude_markers=False, categories=''):
|
||||
|
||||
from pipenv.utils.dependencies import convert_deps_to_pip
|
||||
|
||||
@@ -753,9 +753,11 @@ def requirements(state, dev=False, dev_only=False, hash=False, exclude_markers=F
|
||||
echo(" ".join([prefix, package_index["url"]]))
|
||||
|
||||
deps = {}
|
||||
categories_list = categories.split(',') if categories else []
|
||||
|
||||
if category:
|
||||
deps.update(lockfile.get(category, {}))
|
||||
if categories_list:
|
||||
for category in categories_list:
|
||||
deps.update(lockfile.get(category, {}))
|
||||
else:
|
||||
if dev or dev_only:
|
||||
deps.update(lockfile["develop"])
|
||||
|
||||
@@ -73,11 +73,13 @@ def test_requirements_generates_requirements_from_lockfile_multiple_sources(pipe
|
||||
|
||||
|
||||
@pytest.mark.requirements
|
||||
def test_requirements_generates_requirements_from_lockfile_from_a_category(pipenv_instance_private_pypi):
|
||||
def test_requirements_generates_requirements_from_lockfile_from_categories(pipenv_instance_private_pypi):
|
||||
with pipenv_instance_private_pypi(chdir=True) as p:
|
||||
packages = ('six', '1.12.0')
|
||||
dev_packages = ('itsdangerous', '1.1.0')
|
||||
test_packages = ('pytest', '7.1.3')
|
||||
doc_packages = ('Sphinx', '5.3.0')
|
||||
|
||||
with open(p.pipfile_path, 'w') as f:
|
||||
contents = f"""
|
||||
[[source]]
|
||||
@@ -90,6 +92,8 @@ def test_requirements_generates_requirements_from_lockfile_from_a_category(pipen
|
||||
{dev_packages[0]}= "=={dev_packages[1]}"
|
||||
[test-packages]
|
||||
{test_packages[0]}= "=={test_packages[1]}"
|
||||
[doc-packages]
|
||||
{doc_packages[0]}= "=={doc_packages[1]}"
|
||||
""".strip()
|
||||
f.write(contents)
|
||||
l = p.pipenv('lock')
|
||||
@@ -101,11 +105,12 @@ def test_requirements_generates_requirements_from_lockfile_from_a_category(pipen
|
||||
assert f'{test_packages[0]}=={test_packages[1]}' not in c.stdout
|
||||
assert f'{dev_packages[0]}=={dev_packages[1]}' in c.stdout
|
||||
|
||||
d = p.pipenv('requirements --category test')
|
||||
d = p.pipenv('requirements --category test,doc')
|
||||
assert d.returncode == 0
|
||||
assert f'{packages[0]}=={packages[1]}' not in d.stdout
|
||||
assert f'{dev_packages[0]}=={dev_packages[1]}' not in c.stdout
|
||||
assert f'{test_packages[0]}=={test_packages[1]}' in d.stdout
|
||||
assert f'{doc_packages[0]}=={doc_packages[1]}' in d.stdout
|
||||
|
||||
@pytest.mark.requirements
|
||||
def test_requirements_with_git_requirements(pipenv_instance_pypi):
|
||||
|
||||
Reference in New Issue
Block a user