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 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
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
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
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