Beispiel #1
0
    def setup(self):
        self.command = InstallCommand()
        self.pip_index_ctx = ContextUser(temp_pip_index(PACKAGES_DIR))
        self.index_url = self.pip_index_ctx.enter()
        self.temp_proj_ctx = ContextUser(temp_project())
        self.project, self.options, self.temp_dir = self.temp_proj_ctx.enter()

        self.old_sys_path = sys.path
        site_packages = site_packages_dir(base_dir=self.project.env_path())
        sys.path.append(site_packages)
Beispiel #2
0
class TestInstallCommandOutsideOfDirectory(object):
    def setup(self):
        self.command = InstallCommand()
        self.pip_index_ctx = ContextUser(temp_pip_index(PACKAGES_DIR))
        self.index_url = self.pip_index_ctx.enter()
        self.temp_proj_ctx = ContextUser(temp_project(False))
        self.project, self.options, self.temp_dir = self.temp_proj_ctx.enter()

        self.old_sys_path = sys.path
        site_packages = site_packages_dir(base_dir=self.project.env_path())
        sys.path.append(site_packages)

    def teardown(self):
        sys.path = self.old_sys_path
        self.temp_proj_ctx.exit()
        self.pip_index_ctx.exit()

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install_using_lock_file_outside(self):

        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section').returns(
            fake_req_set))

        lock_file_path = project.path(constants.VE_LOCK_FILENAME)
        lock_file = open(lock_file_path, 'w')
        lock_file.write(
            textwrap.dedent("""
            test1 (test1==0.1)
            test2 (test2==1.3)
            test3 (test3==0.10.1)
            test5 (test5==1.4.3)
        """))
        lock_file.close()
        fake_req_set_iter = fake_requirements(['test1', 'test5'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)

        self.command.run(project, options)

        pip_packages = pip_requirements(project)

        expected_packages = [
            'test1==0.1', 'test2==1.3', 'test3==0.10.1', 'test5==1.4.3'
        ]
        for package in expected_packages:
            assert package in pip_packages
class TestInstallCommandOutsideOfDirectory(object):
    def setup(self):
        self.command = InstallCommand()
        self.pip_index_ctx = ContextUser(temp_pip_index(PACKAGES_DIR))
        self.index_url = self.pip_index_ctx.enter()
        self.temp_proj_ctx = ContextUser(temp_project(False))
        self.project, self.options, self.temp_dir = self.temp_proj_ctx.enter()

        self.old_sys_path = sys.path
        site_packages = site_packages_dir(base_dir=self.project.env_path())
        sys.path.append(site_packages)

    def teardown(self):
        sys.path = self.old_sys_path
        self.temp_proj_ctx.exit()
        self.pip_index_ctx.exit()

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install_using_lock_file_outside(self):

        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section')
                .returns(fake_req_set))

        lock_file_path = project.path(constants.VE_LOCK_FILENAME)
        lock_file = open(lock_file_path, 'w')
        lock_file.write(textwrap.dedent("""
            test1 (test1==0.1)
            test2 (test2==1.3)
            test3 (test3==0.10.1)
            test5 (test5==1.4.3)
        """))
        lock_file.close()
        fake_req_set_iter = fake_requirements(['test1', 'test5'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)

        self.command.run(project, options)

        pip_packages = pip_requirements(project)
        
        expected_packages = ['test1==0.1', 'test2==1.3', 
                'test3==0.10.1', 'test5==1.4.3']
        for package in expected_packages:
            assert package in pip_packages
    def setup(self):
        self.command = InstallCommand()
        self.pip_index_ctx = ContextUser(temp_pip_index(PACKAGES_DIR))
        self.index_url = self.pip_index_ctx.enter()
        self.temp_proj_ctx = ContextUser(temp_project())
        self.project, self.options, self.temp_dir = self.temp_proj_ctx.enter()

        self.old_sys_path = sys.path
        site_packages = site_packages_dir(base_dir=self.project.env_path())
        sys.path.append(site_packages)
    def setup(self):
        self.command = InstallCommand()
        self.pip_index_ctx = ContextUser(temp_pip_index(PACKAGES_DIR))
        self.index_url = self.pip_index_ctx.enter()
        self.temp_proj_ctx = ContextUser(temp_project())
        self.project, self.options, self.temp_dir = self.temp_proj_ctx.enter()

        self.old_sys_path = sys.path
        python_version = '%d.%d' % (sys.version_info[0], sys.version_info[1])
        new_path = self.project.env_path(
            'lib/python%s/site-packages' % python_version)
        sys.path.append(new_path)
class TestInstallCommand(object):
    def setup(self):
        self.command = InstallCommand()
        self.pip_index_ctx = ContextUser(temp_pip_index(PACKAGES_DIR))
        self.index_url = self.pip_index_ctx.enter()
        self.temp_proj_ctx = ContextUser(temp_project())
        self.project, self.options, self.temp_dir = self.temp_proj_ctx.enter()

        self.old_sys_path = sys.path
        python_version = '%d.%d' % (sys.version_info[0], sys.version_info[1])
        new_path = self.project.env_path(
            'lib/python%s/site-packages' % python_version)
        sys.path.append(new_path)

    def teardown(self):
        sys.path = self.old_sys_path
        self.temp_proj_ctx.exit()
        self.pip_index_ctx.exit()
    
    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install(self):
        # Install should process the requirements 
        # and create a requirement_set
        # The requirement_set is then turned into a 
        # string and written to a requirements file to be
        # used by pip and install the requirements
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section')
                .returns(fake_req_set))
        fake_req_set.expects('to_pip_str').returns("test1")
        
        fake_req_set_iter = fake_requirements(['test1'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)
        self.command.run(project, options)
        requirements_file = open(constants.VE_LOCK_FILENAME)
        requirements_data = requirements_file.read()
        assert 'test1==0.1' in requirements_data

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install_multiple_packages(self):
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section')
                .returns(fake_req_set))
        fake_req_set.expects('to_pip_str').returns("test1\ntest5")
        
        fake_req_set_iter = fake_requirements(['test1', 'test5'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)

        self.command.run(project, options)
        requirements_file = open(constants.VE_LOCK_FILENAME)
        requirements_data = requirements_file.read()
        expected_packages = ['test1==0.1', 'test2==1.3', 
                'test3==0.10.1', 'test5==1.4.3']
        for package in expected_packages:
            assert package in requirements_data
class TestInstallCommand(object):
    def setup(self):
        self.command = InstallCommand()
        self.pip_index_ctx = ContextUser(temp_pip_index(PACKAGES_DIR))
        self.index_url = self.pip_index_ctx.enter()
        self.temp_proj_ctx = ContextUser(temp_project())
        self.project, self.options, self.temp_dir = self.temp_proj_ctx.enter()

        self.old_sys_path = sys.path
        site_packages = site_packages_dir(base_dir=self.project.env_path())
        sys.path.append(site_packages)

    def teardown(self):
        sys.path = self.old_sys_path
        self.temp_proj_ctx.exit()
        self.pip_index_ctx.exit()
    
    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install(self):
        # Install should process the requirements 
        # and create a requirement_set
        # The requirement_set is then turned into a 
        # string and written to a requirements file to be
        # used by pip and install the requirements
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section')
                .returns(fake_req_set))
        
        fake_req_set_iter = fake_requirements(['test1'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)
        self.command.run(project, options)
        requirements_file = open(constants.VE_LOCK_FILENAME)
        requirements_data = requirements_file.read()
        assert 'test1==0.2' in requirements_data

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install_multiple_packages(self):
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section')
                .returns(fake_req_set))
        
        fake_req_set_iter = fake_requirements(['test1', 'test5'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)

        self.command.run(project, options)
        requirements_file = open(constants.VE_LOCK_FILENAME)
        requirements_data = requirements_file.read()
        expected_packages = ['test1==0.2', 'test2==1.3', 
                'test3==0.10.1', 'test5==1.4.3']
        for package in expected_packages:
            assert package in requirements_data

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install_using_lock_file(self):
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section')
                .returns(fake_req_set))

        lock_file_path = project.path(constants.VE_LOCK_FILENAME)
        lock_file = open(lock_file_path, 'w')
        lock_file.write(textwrap.dedent("""
            test1 (test1==0.1)
            test2 (test2==1.3)
            test3 (test3==0.10.1)
            test5 (test5==1.4.3)
        """))
        lock_file.close()

        fake_req_set_iter = fake_requirements(['test1', 'test5'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)

        self.command.run(project, options)

        pip_packages = pip_requirements(project)
        
        expected_packages = ['test1==0.1', 'test2==1.3', 
                'test3==0.10.1', 'test5==1.4.3']
        for package in expected_packages:
            assert package in pip_packages

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install_using_lock_file_repeated_deps(self):
        # This is a regression test
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section')
                .returns(fake_req_set))

        lock_file_path = project.path(constants.VE_LOCK_FILENAME)
        lock_file = open(lock_file_path, 'w')
        lock_file.write(textwrap.dedent("""
            test1 (test1==0.1)
            test5 (test5==1.4.3)
              test2 (test2==1.3)
              test3 (test3==0.10.1)
            test2 (test2==1.3)
            test3 (test3==0.10.1)
        """))
        lock_file.close()

        fake_req_set_iter = fake_requirements(['test1', 'test5', 
            'test2', 'test3'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)

        self.command.run(project, options)

        pip_packages = pip_requirements(project)
        
        expected_packages = ['test1==0.1', 'test2==1.3', 
                'test3==0.10.1', 'test5==1.4.3']
        for package in expected_packages:
            assert package in pip_packages
Beispiel #8
0
class TestInstallCommand(object):
    def setup(self):
        self.command = InstallCommand()
        self.pip_index_ctx = ContextUser(temp_pip_index(PACKAGES_DIR))
        self.index_url = self.pip_index_ctx.enter()
        self.temp_proj_ctx = ContextUser(temp_project())
        self.project, self.options, self.temp_dir = self.temp_proj_ctx.enter()

        self.old_sys_path = sys.path
        site_packages = site_packages_dir(base_dir=self.project.env_path())
        sys.path.append(site_packages)

    def teardown(self):
        sys.path = self.old_sys_path
        self.temp_proj_ctx.exit()
        self.pip_index_ctx.exit()

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install(self):
        # Install should process the requirements
        # and create a requirement_set
        # The requirement_set is then turned into a
        # string and written to a requirements file to be
        # used by pip and install the requirements
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section').returns(
            fake_req_set))

        fake_req_set_iter = fake_requirements(['test1'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)
        self.command.run(project, options)
        requirements_file = open(constants.VE_LOCK_FILENAME)
        requirements_data = requirements_file.read()
        assert 'test1==0.2' in requirements_data

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install_multiple_packages(self):
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section').returns(
            fake_req_set))

        fake_req_set_iter = fake_requirements(['test1', 'test5'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)

        self.command.run(project, options)
        requirements_file = open(constants.VE_LOCK_FILENAME)
        requirements_data = requirements_file.read()
        expected_packages = [
            'test1==0.2', 'test2==1.3', 'test3==0.10.1', 'test5==1.4.3'
        ]
        for package in expected_packages:
            assert package in requirements_data

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install_using_lock_file(self):
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section').returns(
            fake_req_set))

        lock_file_path = project.path(constants.VE_LOCK_FILENAME)
        lock_file = open(lock_file_path, 'w')
        lock_file.write(
            textwrap.dedent("""
            test1 (test1==0.1)
            test2 (test2==1.3)
            test3 (test3==0.10.1)
            test5 (test5==1.4.3)
        """))
        lock_file.close()

        fake_req_set_iter = fake_requirements(['test1', 'test5'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)

        self.command.run(project, options)

        pip_packages = pip_requirements(project)

        expected_packages = [
            'test1==0.1', 'test2==1.3', 'test3==0.10.1', 'test5==1.4.3'
        ]
        for package in expected_packages:
            assert package in pip_packages

    @attr('slow')
    @hide_subprocess_stdout
    @fudge.test
    def test_run_install_using_lock_file_repeated_deps(self):
        # This is a regression test
        project = self.project
        options = self.options
        temp_dir = self.temp_dir
        fake_req_set = SpecialFake()
        (project.__patch_method__('process_config_section').returns(
            fake_req_set))

        lock_file_path = project.path(constants.VE_LOCK_FILENAME)
        lock_file = open(lock_file_path, 'w')
        lock_file.write(
            textwrap.dedent("""
            test1 (test1==0.1)
            test5 (test5==1.4.3)
              test2 (test2==1.3)
              test3 (test3==0.10.1)
            test2 (test2==1.3)
            test3 (test3==0.10.1)
        """))
        lock_file.close()

        fake_req_set_iter = fake_requirements(
            ['test1', 'test5', 'test2', 'test3'])
        fake_req_set.expects('__iter_patch__').returns(fake_req_set_iter)

        self.command.run(project, options)

        pip_packages = pip_requirements(project)

        expected_packages = [
            'test1==0.1', 'test2==1.3', 'test3==0.10.1', 'test5==1.4.3'
        ]
        for package in expected_packages:
            assert package in pip_packages
Beispiel #9
0
def test_initialize_command():
    command = InstallCommand()