diff --git a/aliases/base.py b/aliases/base.py index 73a6f70..8d50c4e 100644 --- a/aliases/base.py +++ b/aliases/base.py @@ -22,7 +22,7 @@ def run_setup(package_name: str, directory: str = '.'): packages=find_packages(directory), # Start with a small number and increase it with # every change you make https://semver.org - version='2.0.6', + version='2.0.7', # Chose a license from here: https: // # help.github.com / articles / licensing - a - # repository. For example: MIT diff --git a/requirements_txt/commands/init/service.py b/requirements_txt/commands/init/service.py index b75e89c..d145d30 100644 --- a/requirements_txt/commands/init/service.py +++ b/requirements_txt/commands/init/service.py @@ -45,12 +45,16 @@ def init_virtual_env(verbose: bool = False): logger.info(" Done.\n") logger.info("Installing to-requirements.txt to virtual environment...") - subprocess.call( - [f"{venv_path}/bin/pip", "install", "to-requirements.txt"], - stdout=stdout, - stderr=stderr, - ) - logger.info(" Done.\n") + if not os.path.exists(f"{venv_path}/bin/requirements-txt"): + subprocess.call( + [f"{venv_path}/bin/pip", "install", "to-requirements.txt"], + stdout=stdout, + stderr=stderr, + ) + logger.info(" Done.\n") + else: + logger.info(" Skip.\n") + logger.info("Setting up to-requirements.txt...") install_for_venv() logger.info(" Done.\n") diff --git a/tests/integrationtests/test_pip.py b/tests/integrationtests/test_pip.py index c39352d..0957309 100644 --- a/tests/integrationtests/test_pip.py +++ b/tests/integrationtests/test_pip.py @@ -1,4 +1,3 @@ -import re import sys import tempfile import os @@ -22,7 +21,6 @@ def virtual_environment(): def init_rt(): - subprocess.run(['./venv/bin/pip', 'install', CURRENT_DIR]) subprocess.run(['./venv/bin/rt', 'i']) @@ -45,20 +43,17 @@ def is_importable(module_name: str): class TestPIP: def test_package_installation(self): with virtual_environment() as path: - init_rt() install_package('appdata==2.2.1') requirements_txt_path = os.path.join(path, 'requirements.txt') with open(requirements_txt_path, 'r') as requirements_file: requirements = [x.strip() for x in requirements_file.readlines()] - assert len(requirements) == 3 - assert re.compile('to-requirements\.txt==.*').fullmatch(requirements[0]) - assert requirements[1] == 'appdata==2.2.1' + assert len(requirements) == 1 + assert requirements[0] == 'appdata==2.2.1' assert is_importable('appdata') def test_local_package_installation(self): with virtual_environment() as path: - init_rt() path_to_local_package = os.path.join( os.path.dirname(__file__), 'test_package', @@ -67,41 +62,48 @@ def test_local_package_installation(self): requirements_txt_path = os.path.join(path, 'requirements.txt') with open(requirements_txt_path, 'r') as requirements_file: requirements = [x.strip() for x in requirements_file.readlines()] - assert len(requirements) == 3 - assert re.compile('to-requirements\.txt==.*').fullmatch(requirements[0]) - assert requirements[2] == path_to_local_package + assert len(requirements) == 1 + assert requirements[0] == path_to_local_package assert is_importable('test_package') def test_git_package_installation(self): with virtual_environment() as path: - init_rt() package_name = "git+https://github.com/VoIlAlex/appdata.git" install_package(package_name) requirements_txt_path = os.path.join(path, 'requirements.txt') with open(requirements_txt_path, 'r') as requirements_file: requirements = [x.strip() for x in requirements_file.readlines()] - assert len(requirements) == 3 - assert re.compile('to-requirements\.txt==.*').fullmatch(requirements[0]) - assert requirements[1] == package_name + assert len(requirements) == 1 + assert requirements[0] == package_name assert is_importable('appdata') - def test_package_uninstallation(self): + def test_double_init(self): with virtual_environment() as path: + requirements_txt_path = os.path.join(path, 'requirements.txt') + with open(requirements_txt_path, 'r') as requirements_file: + requirements = [x.strip() for x in requirements_file.readlines()] + assert len(requirements) == 0 + init_rt() + with open(requirements_txt_path, 'r') as requirements_file: + requirements = [x.strip() for x in requirements_file.readlines()] + assert len(requirements) == 0 + + def test_package_uninstallation(self): + with virtual_environment() as path: install_package('appdata==2.2.1') requirements_txt_path = os.path.join(path, 'requirements.txt') with open(requirements_txt_path, 'r') as requirements_file: requirements = [x.strip() for x in requirements_file.readlines()] - assert len(requirements) == 3 - assert re.compile('to-requirements\.txt==.*').fullmatch(requirements[0]) - assert requirements[1] == 'appdata==2.2.1' + assert len(requirements) == 1 + assert requirements[0] == 'appdata==2.2.1' assert is_importable('appdata') uninstall_package('appdata') with open(requirements_txt_path, 'r') as requirements_file: requirements = [x.strip() for x in requirements_file.readlines()] - assert len(requirements) == 2 + assert len(requirements) == 0 assert not is_importable('appdata')