diff --git a/tests/integration/test_cli.py b/tests/integration/test_cli.py
index 7ebcee1..fc09de5 100644
--- a/tests/integration/test_cli.py
+++ b/tests/integration/test_cli.py
@@ -17,6 +17,7 @@ def test_pipenv_where(PipenvInstance, pypi_secure):
assert normalize_drive(p.path) in c.out
+@pytest.mark.rpmfail
@pytest.mark.cli
def test_pipenv_venv(PipenvInstance):
with PipenvInstance() as p:
@@ -47,6 +48,7 @@ def test_pipenv_support(PipenvInstance):
assert c.out
+@pytest.mark.rpmfail
@pytest.mark.cli
def test_pipenv_rm(PipenvInstance):
with PipenvInstance() as p:
@@ -63,6 +65,7 @@ def test_pipenv_rm(PipenvInstance):
assert not os.path.isdir(venv_path)
+@pytest.mark.rpmfail
@pytest.mark.cli
def test_pipenv_graph(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
@@ -79,6 +82,7 @@ def test_pipenv_graph(PipenvInstance, pypi):
assert "requests" in graph_json_tree.out
+@pytest.mark.rpmfail
@pytest.mark.cli
def test_pipenv_graph_reverse(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
@@ -125,6 +129,7 @@ def test_pipenv_check(PipenvInstance, pypi):
assert 'Ignoring' in c.err
+@pytest.mark.rpmfail
@pytest.mark.cli
def test_pipenv_clean_pip_no_warnings(PipenvInstance):
with PipenvInstance(chdir=True) as p:
diff --git a/tests/integration/test_dot_venv.py b/tests/integration/test_dot_venv.py
index 53f5fb1..1b885fd 100644
--- a/tests/integration/test_dot_venv.py
+++ b/tests/integration/test_dot_venv.py
@@ -8,6 +8,7 @@ from pipenv.vendor import delegator
import pytest
+@pytest.mark.rpmfail
@pytest.mark.dotvenv
def test_venv_in_project(PipenvInstance, pypi):
with temp_environ():
@@ -18,6 +19,7 @@ def test_venv_in_project(PipenvInstance, pypi):
assert normalize_drive(p.path) in p.pipenv('--venv').out
+@pytest.mark.rpmfail
@pytest.mark.dotvenv
def test_venv_at_project_root(PipenvInstance):
with temp_environ():
@@ -33,6 +35,7 @@ def test_venv_at_project_root(PipenvInstance):
assert normalize_drive(p.path) in p.pipenv('--venv').out
+@pytest.mark.rpmfail
@pytest.mark.dotvenv
def test_reuse_previous_venv(PipenvInstance, pypi):
with PipenvInstance(chdir=True, pypi=pypi) as p:
diff --git a/tests/integration/test_install_basic.py b/tests/integration/test_install_basic.py
index 25cb55e..d6a0592 100644
--- a/tests/integration/test_install_basic.py
+++ b/tests/integration/test_install_basic.py
@@ -28,7 +28,7 @@ def test_basic_setup(PipenvInstance, pypi):
@pytest.mark.install
-@flaky
+@pytest.mark.rpmfail
def test_basic_install(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
c = p.pipenv("install requests")
@@ -41,8 +41,8 @@ def test_basic_install(PipenvInstance, pypi):
assert "certifi" in p.lockfile["default"]
+@pytest.mark.rpmfail
@pytest.mark.install
-@flaky
def test_mirror_install(PipenvInstance, pypi):
with temp_environ(), PipenvInstance(chdir=True, pypi=pypi) as p:
mirror_url = os.environ.pop(
@@ -92,7 +92,7 @@ def test_complex_lock(PipenvInstance, pypi):
@pytest.mark.dev
@pytest.mark.run
-@flaky
+@pytest.mark.rpmfail
def test_basic_dev_install(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
c = p.pipenv("install requests --dev")
@@ -110,7 +110,7 @@ def test_basic_dev_install(PipenvInstance, pypi):
@pytest.mark.dev
@pytest.mark.install
-@flaky
+@pytest.mark.rpmfail
def test_install_without_dev(PipenvInstance, pypi):
"""Ensure that running `pipenv install` doesn't install dev packages"""
with PipenvInstance(pypi=pypi, chdir=True) as p:
@@ -136,7 +136,7 @@ pytz = "*"
@pytest.mark.install
-@flaky
+@pytest.mark.rpmfail
def test_install_without_dev_section(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
with open(p.pipfile_path, "w") as f:
@@ -157,7 +157,7 @@ six = "*"
@pytest.mark.extras
@pytest.mark.install
-@flaky
+@pytest.mark.rpmfail
def test_extras_install(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi, chdir=True) as p:
c = p.pipenv("install requests[socks]")
@@ -174,7 +174,7 @@ def test_extras_install(PipenvInstance, pypi):
@pytest.mark.install
@pytest.mark.pin
-@flaky
+@pytest.mark.rpmfail
def test_windows_pinned_pipfile(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
with open(p.pipfile_path, "w") as f:
@@ -192,7 +192,7 @@ requests = "==2.19.1"
@pytest.mark.install
@pytest.mark.resolver
@pytest.mark.backup_resolver
-@flaky
+@pytest.mark.rpmfail
def test_backup_resolver(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
with open(p.pipfile_path, "w") as f:
@@ -209,7 +209,7 @@ def test_backup_resolver(PipenvInstance, pypi):
@pytest.mark.run
@pytest.mark.alt
-@flaky
+@pytest.mark.rpmfail
def test_alternative_version_specifier(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
with open(p.pipfile_path, "w") as f:
@@ -324,6 +324,7 @@ tablib = "<0.12"
assert "requests" not in p.lockfile["default"]
+@pytest.mark.rpmfail
@pytest.mark.cli
@pytest.mark.clean
def test_clean_on_empty_venv(PipenvInstance, pypi):
@@ -332,6 +333,7 @@ def test_clean_on_empty_venv(PipenvInstance, pypi):
assert c.return_code == 0
+@pytest.mark.rpmfail
@pytest.mark.install
def test_install_does_not_extrapolate_environ(PipenvInstance, pypi):
"""Ensure environment variables are not expanded in lock file.
@@ -396,6 +398,7 @@ def test_install_venv_project_directory(PipenvInstance, pypi):
assert venv_loc.joinpath(".project").exists()
+@pytest.mark.rpmfail
@pytest.mark.deploy
@pytest.mark.system
def test_system_and_deploy_work(PipenvInstance, pypi):
diff --git a/tests/integration/test_install_markers.py b/tests/integration/test_install_markers.py
index 0967026..e40d8c5 100644
--- a/tests/integration/test_install_markers.py
+++ b/tests/integration/test_install_markers.py
@@ -62,7 +62,7 @@ depends-on-marked-package = "*"
@pytest.mark.run
@pytest.mark.alt
@pytest.mark.install
-@flaky
+@pytest.mark.rpmfail
def test_specific_package_environment_markers(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
@@ -84,7 +84,7 @@ requests = {version = "*", os_name = "== 'splashwear'"}
@pytest.mark.markers
-@flaky
+@pytest.mark.rpmfail
def test_top_level_overrides_environment_markers(PipenvInstance, pypi):
"""Top-level environment markers should take precedence.
"""
@@ -105,7 +105,7 @@ funcsigs = {version = "*", os_name = "== 'splashwear'"}
@pytest.mark.markers
@pytest.mark.install
-@flaky
+@pytest.mark.rpmfail
def test_global_overrides_environment_markers(PipenvInstance, pypi):
"""Empty (unconditional) dependency should take precedence.
If a dependency is specified without environment markers, it should
@@ -130,7 +130,7 @@ funcsigs = "*"
@pytest.mark.lock
@pytest.mark.complex
-@flaky
+@pytest.mark.rpmfail
@py3_only
@skip_py37
def test_resolver_unique_markers(PipenvInstance, pypi):
@@ -154,7 +154,7 @@ def test_resolver_unique_markers(PipenvInstance, pypi):
@pytest.mark.project
-@flaky
+@pytest.mark.rpmfail
def test_environment_variable_value_does_not_change_hash(PipenvInstance, pypi):
with PipenvInstance(chdir=True, pypi=pypi) as p:
with temp_environ():
diff --git a/tests/integration/test_install_twists.py b/tests/integration/test_install_twists.py
index 4a62304..ccfb9ef 100644
--- a/tests/integration/test_install_twists.py
+++ b/tests/integration/test_install_twists.py
@@ -138,7 +138,7 @@ def test_e_dot(PipenvInstance, pip_src_dir):
@pytest.mark.install
-@flaky
+@pytest.mark.rpmfail
def test_multiprocess_bug_and_install(PipenvInstance, pypi):
with temp_environ():
os.environ["PIPENV_MAX_SUBPROCESS"] = "2"
@@ -166,7 +166,7 @@ urllib3 = "*"
@pytest.mark.sequential
@pytest.mark.install
-@flaky
+@pytest.mark.rpmfail
def test_sequential_mode(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi, chdir=True) as p:
@@ -190,6 +190,7 @@ pytz = "*"
assert c.return_code == 0
+@pytest.mark.rpmfail
@pytest.mark.install
@pytest.mark.run
def test_normalize_name_install(PipenvInstance, pypi):
@@ -224,7 +225,7 @@ Requests = "==2.14.0" # Inline comment
@pytest.mark.files
@pytest.mark.resolver
@pytest.mark.eggs
-@flaky
+@pytest.mark.rpmfail
def test_local_package(PipenvInstance, pip_src_dir, pypi, testsroot):
"""This test ensures that local packages (directories with a setup.py)
installed in editable mode have their dependencies resolved as well"""
@@ -249,7 +250,7 @@ def test_local_package(PipenvInstance, pip_src_dir, pypi, testsroot):
@pytest.mark.files
-@flaky
+@pytest.mark.rpmfail
def test_local_zipfiles(PipenvInstance, pypi, testsroot):
file_name = "requests-2.19.1.tar.gz"
# Not sure where travis/appveyor run tests from
@@ -274,7 +275,7 @@ def test_local_zipfiles(PipenvInstance, pypi, testsroot):
@pytest.mark.files
-@flaky
+@pytest.mark.rpmfail
def test_relative_paths(PipenvInstance, pypi, testsroot):
file_name = "requests-2.19.1.tar.gz"
source_path = os.path.abspath(os.path.join(testsroot, "test_artifacts", file_name))
@@ -297,7 +298,7 @@ def test_relative_paths(PipenvInstance, pypi, testsroot):
@pytest.mark.install
@pytest.mark.local_file
-@flaky
+@pytest.mark.rpmfail
def test_install_local_file_collision(PipenvInstance, pypi):
with PipenvInstance(pypi=pypi) as p:
target_package = "alembic"
@@ -335,6 +336,7 @@ six = {{path = "./artifacts/{}"}}
assert "six" in p.lockfile["default"]
+@pytest.mark.rpmfail
@pytest.mark.files
@pytest.mark.install
@pytest.mark.run
diff --git a/tests/integration/test_install_uri.py b/tests/integration/test_install_uri.py
index 35cdb00..3b0a590 100644
--- a/tests/integration/test_install_uri.py
+++ b/tests/integration/test_install_uri.py
@@ -8,7 +8,7 @@ from pipenv._compat import Path
@pytest.mark.vcs
@pytest.mark.install
@pytest.mark.needs_internet
-@flaky
+@pytest.mark.rpmfail
def test_basic_vcs_install(PipenvInstance, pip_src_dir, pypi):
with PipenvInstance(pypi=pypi, chdir=True) as p:
c = p.pipenv("install git+https://github.com/benjaminp/six.git@1.11.0#egg=six")
@@ -61,7 +61,7 @@ def test_ssh_vcs_install(PipenvInstance, pip_src_dir, pypi):
@pytest.mark.files
@pytest.mark.urls
@pytest.mark.needs_internet
-@flaky
+@pytest.mark.rpmfail
def test_urls_work(PipenvInstance, pypi, pip_src_dir):
with PipenvInstance(pypi=pypi, chdir=True) as p:
path = p._pipfile.get_url("django", "3.4.x.zip")
@@ -116,7 +116,7 @@ def test_local_vcs_urls_work(PipenvInstance, pypi, tmpdir):
@pytest.mark.vcs
@pytest.mark.install
@pytest.mark.needs_internet
-@flaky
+@pytest.mark.rpmfail
def test_editable_vcs_install(PipenvInstance, pip_src_dir, pypi):
with PipenvInstance(pypi=pypi) as p:
c = p.pipenv(
@@ -137,7 +137,7 @@ def test_editable_vcs_install(PipenvInstance, pip_src_dir, pypi):
@pytest.mark.vcs
@pytest.mark.tablib
@pytest.mark.needs_internet
-@flaky
+@pytest.mark.rpmfail
def test_install_editable_git_tag(PipenvInstance, pip_src_dir, pypi):
# This uses the real PyPI since we need Internet to access the Git
# dependency anyway.
diff --git a/tests/integration/test_lock.py b/tests/integration/test_lock.py
index 6080c29..5092e40 100644
--- a/tests/integration/test_lock.py
+++ b/tests/integration/test_lock.py
@@ -24,6 +24,7 @@ RandomWords = "*"
assert p.lockfile['default']['randomwords']['version'] == '==0.2.1'
+@pytest.mark.rpmfail
@pytest.mark.lock
@pytest.mark.requirements
def test_lock_requirements_file(PipenvInstance, pypi):
@@ -54,6 +55,7 @@ flask = "==0.12.2"
assert req in d.out
+@pytest.mark.rpmfail
@pytest.mark.lock
def test_lock_keep_outdated(PipenvInstance, pypi):
@@ -126,6 +128,7 @@ requests = {git = "https://github.com/requests/requests.git"}
assert 'python_dateutil' not in lock['develop']
+@pytest.mark.rpmfail
@pytest.mark.lock
@pytest.mark.requirements
def test_lock_with_prereleases(PipenvInstance, pypi):
@@ -150,7 +153,7 @@ allow_prereleases = true
@pytest.mark.complex
@pytest.mark.maya
@pytest.mark.needs_internet
-@flaky
+@pytest.mark.rpmfail
def test_complex_deps_lock_and_install_properly(PipenvInstance, pip_src_dir, pypi):
# This uses the real PyPI because Maya has too many dependencies...
with PipenvInstance(chdir=True, pypi=pypi) as p:
@@ -315,6 +318,7 @@ requests = "*"
assert '--extra-index-url {}'.format(mirror_url) not in c.out.strip()
+@pytest.mark.rpmfail
@pytest.mark.install
@pytest.mark.index
def test_lock_updated_source(PipenvInstance, pypi):
@@ -489,6 +493,7 @@ def test_lockfile_with_empty_dict(PipenvInstance):
assert p.lockfile['_meta']
+@pytest.mark.rpmfail
@pytest.mark.lock
@pytest.mark.install
def test_lock_with_incomplete_source(PipenvInstance, pypi):
@@ -542,6 +547,7 @@ def test_lock_missing_cache_entries_gets_all_hashes(monkeypatch, PipenvInstance,
assert len(p.lockfile["default"]["scandir"]["hashes"]) > 1
+@pytest.mark.rpmfail
@pytest.mark.lock
@pytest.mark.vcs
def test_vcs_lock_respects_top_level_pins(PipenvInstance, pypi):
diff --git a/tests/integration/test_pipenv.py b/tests/integration/test_pipenv.py
index cb7b924..b4c7780 100644
--- a/tests/integration/test_pipenv.py
+++ b/tests/integration/test_pipenv.py
@@ -26,6 +26,7 @@ def test_code_import_manual(PipenvInstance):
assert 'requests' in p.pipfile['packages']
+@pytest.mark.rpmfail
@pytest.mark.lock
@pytest.mark.deploy
@pytest.mark.cli
@@ -60,6 +61,7 @@ requests = "==2.14.0"
assert c.return_code > 0
+@pytest.mark.rpmfail
@pytest.mark.update
@pytest.mark.lock
def test_update_locks(PipenvInstance, pypi):
diff --git a/tests/integration/test_project.py b/tests/integration/test_project.py
index 8bb76da..c124c6b 100644
--- a/tests/integration/test_project.py
+++ b/tests/integration/test_project.py
@@ -30,6 +30,7 @@ pytz = "*"
assert 'localhost:5000' not in str(pipfile.load(p.pipfile_path))
+@pytest.mark.rpmfail
@pytest.mark.project
@pytest.mark.sources
@pytest.mark.parametrize('lock_first', [True, False])
@@ -77,6 +78,7 @@ six = {{version = "*", index = "pypi"}}
assert sorted(source.items()) == sorted(project.find_source(url).items())
+@pytest.mark.rpmfail
@pytest.mark.install
@pytest.mark.project
@pytest.mark.parametrize('newlines', [u'\n', u'\r\n'])
@@ -114,6 +116,7 @@ def test_maintain_file_line_endings(PipenvInstance, pypi, newlines):
# message because of https://github.com/pytest-dev/pytest/issues/3443
+@pytest.mark.rpmfail
@pytest.mark.project
@pytest.mark.sources
def test_many_indexes(PipenvInstance, pypi):
@@ -182,6 +185,7 @@ def test_include_editable_packages(PipenvInstance, pypi, testsroot, pathlib_tmpd
]
+@pytest.mark.rpmfail
@pytest.mark.project
def test_run_in_virtualenv(PipenvInstance, pypi, virtualenv):
with PipenvInstance(chdir=True, pypi=pypi) as p:
diff --git a/tests/integration/test_run.py b/tests/integration/test_run.py
index 8e82a6e..bf7fbef 100644
--- a/tests/integration/test_run.py
+++ b/tests/integration/test_run.py
@@ -6,6 +6,7 @@ from pipenv.utils import temp_environ
import pytest
+@pytest.mark.rpmfail
@pytest.mark.run
@pytest.mark.dotenv
def test_env(PipenvInstance):
@@ -18,6 +19,7 @@ def test_env(PipenvInstance):
assert 'WORLD' in c.out
+@pytest.mark.rpmfail
@pytest.mark.run
def test_scripts(PipenvInstance):
with PipenvInstance(chdir=True) as p:
diff --git a/tests/integration/test_sync.py b/tests/integration/test_sync.py
index 2ef06dd..3533fb3 100644
--- a/tests/integration/test_sync.py
+++ b/tests/integration/test_sync.py
@@ -18,6 +18,7 @@ def test_sync_error_without_lockfile(PipenvInstance, pypi):
assert 'Pipfile.lock not found!' in c.err
+@pytest.mark.rpmfail
@pytest.mark.sync
@pytest.mark.lock
def test_mirror_lock_sync(PipenvInstance, pypi):
diff --git a/tests/integration/test_uninstall.py b/tests/integration/test_uninstall.py
index 5f493ca..c84f1fc 100644
--- a/tests/integration/test_uninstall.py
+++ b/tests/integration/test_uninstall.py
@@ -6,6 +6,7 @@ from pipenv.utils import temp_environ
import pytest
+@pytest.mark.rpmfail
@pytest.mark.run
@pytest.mark.uninstall
@pytest.mark.install
@@ -33,6 +34,7 @@ def test_uninstall(PipenvInstance, pypi):
assert c.return_code > 0
+@pytest.mark.rpmfail
@pytest.mark.run
@pytest.mark.uninstall
@pytest.mark.install
@@ -76,6 +78,7 @@ def test_mirror_uninstall(PipenvInstance, pypi):
assert c.return_code > 0
+@pytest.mark.rpmfail
@pytest.mark.files
@pytest.mark.uninstall
@pytest.mark.install
@@ -97,6 +100,7 @@ def test_uninstall_all_local_files(PipenvInstance, testsroot):
assert "requests" in p.pipfile["packages"]
+@pytest.mark.rpmfail
@pytest.mark.run
@pytest.mark.uninstall
@pytest.mark.install
@@ -131,6 +135,7 @@ def test_uninstall_all_dev(PipenvInstance, pypi):
assert c.return_code == 0
+@pytest.mark.rpmfail
@pytest.mark.uninstall
@pytest.mark.run
def test_normalize_name_uninstall(PipenvInstance, pypi):
diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py
index 422c100..4a35c5d 100644
--- a/tests/unit/test_utils.py
+++ b/tests/unit/test_utils.py
@@ -215,6 +215,7 @@ class TestUtils:
assert pipenv.utils.is_valid_url(not_url) is False
@pytest.mark.utils
+ @pytest.mark.rpmfail
def test_download_file(self):
url = "https://github.com/kennethreitz/pipenv/blob/master/README.md"
output = "test_download.md"
@@ -263,6 +264,7 @@ twine = "*"
def test_win_normalize_drive(self, input_path, expected):
assert pipenv.utils.normalize_drive(input_path) == expected
+ @pytest.mark.rpmfail
@pytest.mark.utils
@pytest.mark.parametrize(
"input_path, expected",