def clean_metadata(self): metadata = self.cleaned_data['metadata'] try: meta = metadata.read() MetadataConfig.from_string(meta) metadata = meta except Exception as e: raise forms.ValidationError(_("%s" % e)) return metadata
def metadata_detect(request): return MetadataConfig.from_string(''' interpreter: type: ruby versions: - 2.1.0 repository: clone: echo "Cloned" update: echo "Updated" ''')
def obj_create(self, bundle, request=None, **kwargs): # TODO use MongoCleanedDataFormValidation ?? metadata = bundle.data.get('metadata') if not metadata: raise exceptions.ValidationError(_('Missing metadata')) try: MetadataConfig.from_string(metadata) except Exception as e: raise exceptions.ValidationError( _('Invalid metadata: {err}').format(err=e)) log.debug(_("Going to create new application for user " "'{name}'").format(name=bundle.request.user.username)) try: return super(MongoEngineResource, self).obj_create( bundle, request=request, owner=bundle.request.user, **kwargs) except mongoengine.ValidationError as e: log.warning(_("Can't create new application, invalid data " "payload: {msg}").format(msg=e.message)) raise exceptions.ValidationError(e.message) except mongoengine.NotUniqueError as e: log.warning(_("Can't create new application, duplicated fields: " "{msg}").format(msg=e.message)) raise exceptions.ValidationError(e.message)
def test_supported_versions_major(interpreters_config): metadata = MetadataConfig.from_string(''' interpreter: type: ruby versions: - '2' repository: clone: echo "Cloned" update: echo "Updated" ''') valid = supported_versions(interpreters_config, metadata) assert len(valid.keys()) == 2 assert '2.0' in valid assert '2.1' in valid
def metadata_manual(request): return MetadataConfig.from_string(''' interpreter: type: ruby versions: - 2.1.0 repository: clone: echo "Cloned" update: echo "Updated" revision: id: revision id cmd author: author cmd date: date cmd description: description cmd changelog: changelog cmd ''')
def metadata_config(self): if self.metadata: return MetadataConfig.from_string(self.metadata) return {}