def validate_schema(request): config = get_config(request) storage_path = config.get('repo.storage_path') repo = get_repository(os.path.join(storage_path, request.matchdict['name'])) uuid = request.matchdict['uuid'] content_type = request.matchdict['content_type'] schema = get_schema(repo, content_type) data = json.loads(request.body) if not validate(schema, data): request.errors.status = 400 request.errors.add( 'body', 'schema', 'Data does not match the schema for %s' % (content_type, )) elif uuid is not None and data['uuid'] != uuid: request.errors.status = 400 request.errors.add('body', 'uuid', 'Payload UUID does not match URL UUID.') else: request.schema = schema.to_json() request.schema_data = data
def get(self): name = self.request.matchdict['name'] storage_path = self.config.get('repo.storage_path') return format_repo(get_repository(os.path.join(storage_path, name)))
def get(self): name = self.request.matchdict['name'] commit_id = self.request.matchdict['commit_id'] storage_path = self.config.get('repo.storage_path') return pull_repository_files( get_repository(os.path.join(storage_path, name)), commit_id)
def collection_get(self): name = self.request.matchdict['name'] content_type = self.request.matchdict['content_type'] storage_path = self.config.get('repo.storage_path') return format_content_type( get_repository(os.path.join(storage_path, name)), content_type)
def test_get_repository(self): repo = get_repository(self.workspace.working_dir) self.assertTrue(isinstance(repo, Repo)) self.assertEqual(repo.working_dir, self.workspace.working_dir)