示例#1
0
def test_project_seeks_project_path():
    fake_project_sub_directory = fixture_path('sample_project/lev1/lev2')
    base_parser = create_base_parser()
    base_options = base_parser.parse_args(args=[])
    with in_directory(fake_project_sub_directory):
        project = Project.load(base_options)
        assert project.path() == fixture_path('sample_project')
        assert project.name == 'sample_project'
def test_project_seeks_project_path():
    fake_project_sub_directory = fixture_path('sample_project/lev1/lev2')
    base_parser = create_base_parser()
    base_options = base_parser.parse_args(args=[])
    with in_directory(fake_project_sub_directory):
        project = Project.load(base_options)
        assert project.path() == fixture_path('sample_project')
        assert project.name == 'sample_project'
示例#3
0
def temp_project():
    """Creates a temporary project directory within a temporary directory
    
    This is useful for testing ProjectCommands.
    """
    base_parser = create_base_parser()
    options = base_parser.parse_args(args=[])
    with in_temp_directory() as temp_dir:
        os.mkdir(constants.VIRTSTRAP_DIR)
        virtualenv.create_environment(constants.VIRTSTRAP_DIR,
                                      site_packages=False)
        options.project_dir = temp_dir
        project = FakeProject.load(options)
        yield project, options, temp_dir
示例#4
0
def temp_project():
    """Creates a temporary project directory within a temporary directory
    
    This is useful for testing ProjectCommands.
    """
    base_parser = create_base_parser()
    options = base_parser.parse_args(args=[])
    with in_temp_directory() as temp_dir:
        os.mkdir(constants.VIRTSTRAP_DIR)
        virtualenv.create_environment(constants.VIRTSTRAP_DIR, 
                site_packages=False)
        options.project_dir = temp_dir
        project = FakeProject.load(options)
        yield project, options, temp_dir
def test_run_initialize_command(fake_call):
    fake_call.expects_call()
    with in_temp_directory() as temp_directory:
        command = InitializeCommand()
        parser = create_base_parser()
        options = parser.parse_args(['--project-dir=.'])
        return_code = command.execute(None, options)
        pip_bin = os.path.join(temp_directory, constants.VIRTSTRAP_DIR, 
                'bin', 'pip')
        output, ret = call_and_capture([pip_bin, 'freeze'])
        expected_packages = ['virtstrap-core', 
                'virtstrap-local']
        for expected in expected_packages:
            assert expected in output
        assert return_code == 0
 def base_setup(self, option_overrides):
     # Create a fake VirtstrapConfig
     config = fudge.Fake()
     config.provides('from_file').returns(config)
     self.config = (config.provides('process_section').with_args(
         'project_name', arg.any()).returns('projdir'))
     # Patch VirtstrapConfig
     self.config_patch = patch_object('virtstrap.project',
                                      'VirtstrapConfig', config)
     base_parser = create_base_parser()
     options = base_parser.parse_args(args=[])
     # Add any overrides
     for name, override in option_overrides.iteritems():
         setattr(options, name, override)
     self._options = options
     self._project = None
示例#7
0
def temp_project(change_working_dir=True):
    """Creates a temporary project directory within a temporary directory
    
    This is useful for testing ProjectCommands.
    """
    base_parser = create_base_parser()
    options = base_parser.parse_args(args=[])
    dir_context = in_temp_directory
    if not change_working_dir:
        dir_context = temp_directory
    with dir_context() as temp_dir:
        vs_dir_path = os.path.join(temp_dir, constants.VIRTSTRAP_DIR)
        os.mkdir(vs_dir_path)
        virtualenv.create_environment(vs_dir_path, site_packages=False)
        options.project_dir = temp_dir
        project = FakeProject.load(options)
        yield project, options, temp_dir
def test_run_initialize_command_in_subdirectory(fake_call):
    fake_call.expects_call()
    """Init command using a subdirectory of CWD for the project"""
    with in_temp_directory() as temp_directory:
        project_dir = os.path.join(temp_directory, 'projdir')
        command = InitializeCommand()
        parser = create_base_parser()
        options = parser.parse_args(['--project-dir=%s' % project_dir])
        return_code = command.execute(options)
        pip_bin = os.path.join(project_dir, constants.VIRTSTRAP_DIR, 
                'bin', 'pip')
        output, ret = call_and_capture([pip_bin, 'freeze'])
        expected_packages = ['simpleyaml', 'virtstrap-core', 
                'virtstrap-local', 'Jinja2']
        for expected in expected_packages:
            assert expected in output
        assert return_code == 0
示例#9
0
 def base_setup(self, option_overrides):
     # Create a fake VirtstrapConfig
     config = fudge.Fake()
     config.provides('from_file').returns(config)
     self.config = (config.provides('process_section')
             .with_args('project_name', arg.any())
             .returns('projdir'))
     # Patch VirtstrapConfig
     self.config_patch = patch_object('virtstrap.project', 
             'VirtstrapConfig', config)
     base_parser = create_base_parser()
     options = base_parser.parse_args(args=[])
     # Add any overrides
     for name, override in option_overrides.iteritems():
         setattr(options, name, override)
     self._options = options
     self._project = None
示例#10
0
def test_project_command_runs_with_project_not_faked():
    """Test NoEventProjectCommand in a sandbox"""
    class FakeProjectCommand(NoEventProjectCommand):
        name = 'test'
        def run(self, project, options, **kwargs):
            self.called = True
            assert project.name == 'sample_project'
            assert project.env_path().endswith('sample_project/.vs.env')
    from virtstrap.options import create_base_parser
    base_parser = create_base_parser()
    base_options = base_parser.parse_args(args=[])
    fake_project_sub_directory = fixture_path('sample_project/lev1/lev2')
    with in_directory(fake_project_sub_directory):
        command = FakeProjectCommand()
        return_code = command.execute(None, base_options)
        assert return_code == 0
        assert_called_flag(command)
def test_run_initialize_command_in_subdirectory(fake_call):
    fake_call.expects_call()
    """Init command using a subdirectory of CWD for the project"""
    with in_temp_directory() as temp_directory:
        project_dir = os.path.join(temp_directory, 'projdir')
        command = InitializeCommand()
        parser = create_base_parser()
        options = parser.parse_args(['--project-dir=%s' % project_dir])
        return_code = command.execute(options)
        pip_bin = os.path.join(project_dir, constants.VIRTSTRAP_DIR, 'bin',
                               'pip')
        output, ret = call_and_capture([pip_bin, 'freeze'])
        expected_packages = [
            'simpleyaml', 'virtstrap-core', 'virtstrap-local', 'Jinja2'
        ]
        for expected in expected_packages:
            assert expected in output
        assert return_code == 0
示例#12
0
def temp_project(change_working_dir=True):
    """Creates a temporary project directory within a temporary directory
    
    This is useful for testing ProjectCommands.
    """
    base_parser = create_base_parser()
    options = base_parser.parse_args(args=[])
    dir_context = in_temp_directory
    if not change_working_dir: 
        dir_context = temp_directory
    with dir_context() as temp_dir:
        vs_dir_path = os.path.join(temp_dir, constants.VIRTSTRAP_DIR)
        os.mkdir(vs_dir_path)
        virtualenv.create_environment(vs_dir_path,
                site_packages=False)
        options.project_dir = temp_dir
        project = FakeProject.load(options)
        yield project, options, temp_dir