def test_getListNameFromDependencies_Type(self): Type(title='testType', filename='filename', content='content', hash='hash').save() self.assertEquals( 'testType', getListNameFromDependencies(list(Type.objects(title='testType'))))
def createType(self, title='test', filename='test', user=None): countType = len(Type.objects()) hash = XSDhash.get_hash('<test>test xmldata</test>') objectVersions = self.createTypeVersion() type = Type(title=title, filename=filename, content='<test>test xmldata</test>', version=1, typeVersion=str(objectVersions.id), hash=hash, user=str(user)).save() self.assertEquals(len(Type.objects()), countType + 1) return type
def test_delete_type_with_dependencies(self): type = self.createType() Type(title='testType', filename='filename', content='content', hash='hash', dependencies=[str(type.id)]).save() Template(title='testTemplate', filename='filename', content='content', hash='hash', dependencies=[str(type.id)]).save() listDependencies = delete_type(str(type.id)) self.assertEquals(len(Type.objects()), 2) self.assertEquals(len(TypeVersion.objects()), 1) self.assertEquals(listDependencies, 'testType, testTemplate')
def save_version(request): print 'BEGIN def saveVersion(request, objectType)' versionFilename = None versionContent = None objectVersionID = None objectType = None if ('uploadVersionValid' in request.session and request.session['uploadVersionValid'] == True and 'uploadVersionID' in request.session and request.session['uploadVersionID'] is not None and 'uploadVersionType' in request.session and request.session['uploadVersionType'] is not None and 'uploadVersionFilename' in request.session and request.session['uploadVersionFilename'] is not None and 'uploadVersionContent' in request.session and request.session['uploadVersionContent'] is not None): versionFilename = request.session['uploadVersionFilename'] versionContent = request.session['uploadVersionContent'] objectVersionID = request.session['uploadVersionID'] objectType = request.session['uploadVersionType'] if 'uploadVersionFlat' in request.session and request.session[ 'uploadVersionFlat'] is not None: versionFlat = request.session['uploadVersionFlat'] else: versionFlat = None if 'uploadVersionAPIurl' in request.session and request.session[ 'uploadVersionAPIurl'] is not None: versionApiurl = request.session['uploadVersionAPIurl'] else: versionApiurl = None if 'uploadDependencies' in request.session and request.session[ 'uploadDependencies'] is not None: dependencies = request.session['uploadDependencies'] else: dependencies = None hash = XSDhash.get_hash(versionContent) # save the object if objectType == "Template": objectVersions = TemplateVersion.objects.get(pk=objectVersionID) objectVersions.nbVersions += 1 object = Template.objects.get(pk=objectVersions.current) newObject = Template(title=object.title, filename=versionFilename, content=versionContent, version=objectVersions.nbVersions, templateVersion=objectVersionID, hash=hash).save() elif objectType == "Type": objectVersions = TypeVersion.objects.get(pk=objectVersionID) objectVersions.nbVersions += 1 object = Type.objects.get(pk=objectVersions.current) newObject = Type(title=object.title, filename=versionFilename, content=versionContent, version=objectVersions.nbVersions, typeVersion=objectVersionID, hash=hash).save() objectVersions.versions.append(str(newObject.id)) objectVersions.save() if versionFlat is not None and versionApiurl is not None and dependencies is not None: MetaSchema(schemaId=str(newObject.id), flat_content=versionFlat, api_content=versionApiurl).save() object.dependencies = dependencies object.save() clearVersion(request) else: response_dict = {'errors': 'True'} return HttpResponse(json.dumps(response_dict), content_type='application/javascript') return HttpResponse(json.dumps({}), content_type='application/javascript')
def save_object(request): print 'BEGIN def save_object(request)' objectName = None objectFilename = None objectContent = None objectType = None objectFlat = None objectApiurl = None if ('uploadObjectValid' in request.session and request.session['uploadObjectValid'] == True and 'uploadObjectName' in request.session and request.session['uploadObjectName'] is not None and 'uploadObjectFilename' in request.session and request.session['uploadObjectFilename'] is not None and 'uploadObjectContent' in request.session and request.session['uploadObjectContent'] is not None and 'uploadObjectType' in request.session and request.session['uploadObjectType'] is not None): objectName = request.session['uploadObjectName'] objectFilename = request.session['uploadObjectFilename'] objectContent = request.session['uploadObjectContent'] objectType = request.session['uploadObjectType'] if 'uploadObjectFlat' in request.session and request.session[ 'uploadObjectFlat'] is not None: objectFlat = request.session['uploadObjectFlat'] else: objectFlat = None if 'uploadObjectAPIurl' in request.session and request.session[ 'uploadObjectAPIurl'] is not None: objectApiurl = request.session['uploadObjectAPIurl'] else: objectApiurl = None if 'uploadDependencies' in request.session and request.session[ 'uploadDependencies'] is not None: dependencies = request.session['uploadDependencies'] else: dependencies = None hash = XSDhash.get_hash(objectContent) # save the object if objectType == "Template": objectVersions = TemplateVersion(nbVersions=1, isDeleted=False).save() object = Template(title=objectName, filename=objectFilename, content=objectContent, version=1, templateVersion=str(objectVersions.id), hash=hash).save() #We add default exporters try: exporters = Exporter.objects.filter(available_for_all=True) object.exporters = exporters except: pass elif objectType == "Type": objectVersions = TypeVersion(nbVersions=1, isDeleted=False).save() object = Type(title=objectName, filename=objectFilename, content=objectContent, version=1, typeVersion=str(objectVersions.id), hash=hash).save() buckets = request.POST.getlist('buckets[]') for bucket_id in buckets: bucket = Bucket.objects.get(pk=bucket_id) bucket.types.append(str(objectVersions.id)) bucket.save() objectVersions.versions = [str(object.id)] objectVersions.current = str(object.id) objectVersions.save() object.save() if objectFlat is not None and objectApiurl is not None and dependencies is not None: MetaSchema(schemaId=str(object.id), flat_content=objectFlat, api_content=objectApiurl).save() object.dependencies = dependencies object.save() clear_object(request) else: response_dict = {'errors': 'True'} return HttpResponse(json.dumps(response_dict), content_type='application/javascript') return HttpResponse(json.dumps({}), content_type='application/javascript')
xmlSchema = etree.XMLSchema(flatTree) except Exception, e: response_dict['errors'] = "Not a valid XML document." response_dict['message'] = e.message.replace("'", "") return HttpResponse(json.dumps(response_dict), content_type='application/javascript') hash = XSDhash.get_hash(content) dependencies = [] for uri in request.session["includedTypesCompose"]: url = urlparse(uri) id = url.query.split("=")[1] dependencies.append(id) type = Type(title=type_name, filename=type_name, content=content, user=str(request.user.id), hash=hash, dependencies=dependencies) type.save() MetaSchema(schemaId=str(type.id), flat_content=flatStr, api_content=content).save() return HttpResponse(json.dumps(response_dict), content_type='application/javascript') ################################################################################ # # Function Name: get_occurrences(request) # Inputs: request - HTTP request
flattener = XSDFlattenerMDCS(content) flatStr = flattener.get_flat() flatTree = etree.fromstring(flatStr) try: # is it a valid XML schema ? xmlSchema = etree.XMLSchema(flatTree) except Exception, e: dajax.script(""" $("#new-type-error").html("<font color='red'>Not a valid XML schema.</font><br/>""" + e.message.replace("'", "") + """ "); """) return dajax.json() type = Type(title=typeName, filename=typeName, content=content, user=request.user.id) type.save() MetaSchema(schemaId=str(type.id), flat_content=flatStr, api_content=content).save() dajax.script(""" saveTemplateCallback(); $("#dialog-save-type").dialog("close"); """) return dajax.json() ################################################################################ #