From 7534dccd6c436df71482c2c0e9328be248a0df5f Mon Sep 17 00:00:00 2001 From: Bhavam Vidyarthi Date: Mon, 3 Feb 2020 02:47:02 +0530 Subject: [PATCH] Removed tests/scripts folder with its contents (#7680) --- .../html/development/architecture/anatomy.rst | 1 - news/7680.removal | 1 + tests/scripts/test_all_pip.py | 139 ------------------ 3 files changed, 1 insertion(+), 140 deletions(-) create mode 100644 news/7680.removal delete mode 100644 tests/scripts/test_all_pip.py diff --git a/docs/html/development/architecture/anatomy.rst b/docs/html/development/architecture/anatomy.rst index 9613460b0..741535845 100644 --- a/docs/html/development/architecture/anatomy.rst +++ b/docs/html/development/architecture/anatomy.rst @@ -50,7 +50,6 @@ The ``README``, license, ``pyproject.toml``, ``setup.py``, and so on are in the * ``data/`` *[test data for running tests -- pesudo package index in it! Lots of small packages that are invalid or are valid. Test fixtures. Used by functional tests]* * ``functional/`` *[functional tests of pip’s CLI -- end-to-end, invoke pip in subprocess & check results of execution against desired result. This also is what makes test suite slow]* * ``lib/`` *[helpers for tests]* - * ``scripts/`` *[will probably die in future in a refactor -- scripts for running all of the tests, but we use pytest now. Someone could make a PR to remove this! Good first issue!]* * ``unit/`` *[unit tests -- fast and small and nice!]* * ``yaml/`` *[resolver tests! They’re written in YAML. This folder just contains .yaml files -- actual code for reading/running them is in lib/yaml.py . This is fine!]* diff --git a/news/7680.removal b/news/7680.removal new file mode 100644 index 000000000..7d582156f --- /dev/null +++ b/news/7680.removal @@ -0,0 +1 @@ +Remove unused ``tests/scripts/test_all_pip.py`` test script and the ``tests/scripts`` folder. diff --git a/tests/scripts/test_all_pip.py b/tests/scripts/test_all_pip.py deleted file mode 100644 index 18c97f1c8..000000000 --- a/tests/scripts/test_all_pip.py +++ /dev/null @@ -1,139 +0,0 @@ -import os -import re -import subprocess -import sys -from os.path import abspath, dirname - -from pip._vendor.six.moves.urllib import request as urllib_request - -from pip._internal.utils.misc import rmtree - -src_folder = dirname(dirname(abspath(__file__))) - -if sys.platform == 'win32': - bin_dir = 'Scripts' -else: - bin_dir = 'bin' - - -def all_projects(): - data = urllib_request.urlopen('http://pypi.org/simple/').read() - projects = [m.group(1) for m in re.finditer(r'(.+)', data)] - return projects - - -def main(args=None): - if args is None: - args = sys.argv[1:] - if not args: - print('Usage: test_all_pip.py ') - sys.exit(1) - output = os.path.abspath(args[0]) - if not os.path.exists(output): - print('Creating %s' % output) - os.makedirs(output) - pending_fn = os.path.join(output, 'pending.txt') - if not os.path.exists(pending_fn): - print('Downloading pending list') - projects = all_projects() - print('Found %s projects' % len(projects)) - with open(pending_fn, 'w') as f: - for name in projects: - f.write(name + '\n') - print('Starting testing...') - while os.stat(pending_fn).st_size: - _test_packages(output, pending_fn) - print('Finished all pending!') - - -def _test_packages(output, pending_fn): - package = get_last_item(pending_fn) - print('Testing package %s' % package) - dest_dir = os.path.join(output, package) - print('Creating virtualenv in %s' % dest_dir) - create_venv(dest_dir) - print('Uninstalling actual pip') - code = subprocess.check_call([ - os.path.join(dest_dir, bin_dir, 'pip'), - 'uninstall', - '-y', - 'pip', - ]) - assert not code, 'pip uninstallation failed' - print('Installing development pip') - code = subprocess.check_call( - [ - os.path.join(dest_dir, bin_dir, 'python'), - 'setup.py', - 'install' - ], - cwd=src_folder, - ) - assert not code, 'pip installation failed' - print('Trying installation of %s' % dest_dir) - code = subprocess.check_call([ - os.path.join(dest_dir, bin_dir, 'pip'), - 'install', - package, - ]) - if code: - print('Installation of %s failed' % package) - print('Now checking easy_install...') - create_venv(dest_dir) - code = subprocess.check_call([ - os.path.join(dest_dir, bin_dir, 'easy_install'), - package, - ]) - if code: - print('easy_install also failed') - add_package(os.path.join(output, 'easy-failure.txt'), package) - else: - print('easy_install succeeded') - add_package(os.path.join(output, 'failure.txt'), package) - pop_last_item(pending_fn, package) - else: - print('Installation of %s succeeded' % package) - add_package(os.path.join(output, 'success.txt'), package) - pop_last_item(pending_fn, package) - rmtree(dest_dir) - - -def create_venv(dest_dir): - if os.path.exists(dest_dir): - rmtree(dest_dir) - print('Creating virtualenv in %s' % dest_dir) - code = subprocess.check_call([ - 'virtualenv', - '--no-site-packages', - dest_dir, - ]) - assert not code, "virtualenv failed" - - -def get_last_item(fn): - f = open(fn, 'r') - lines = f.readlines() - f.close() - return lines[-1].strip() - - -def pop_last_item(fn, line=None): - f = open(fn, 'r') - lines = f.readlines() - f.close() - if line: - assert lines[-1].strip() == line.strip() - lines.pop() - f = open(fn, 'w') - f.writelines(lines) - f.close() - - -def add_package(filename, package): - f = open(filename, 'a') - f.write(package + '\n') - f.close() - - -if __name__ == '__main__': - main()