Esempio n. 1
0
 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
Esempio n. 2
0
def metadata_detect(request):
    return MetadataConfig.from_string('''
interpreter:
  type: ruby
  versions:
    - 2.1.0

repository:
  clone: echo "Cloned"
  update: echo "Updated"
''')
Esempio n. 3
0
 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)
Esempio n. 4
0
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
Esempio n. 5
0
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
''')
Esempio n. 6
0
 def metadata_config(self):
     if self.metadata:
         return MetadataConfig.from_string(self.metadata)
     return {}