Skip to content

Commit

Permalink
fixes #8
Browse files Browse the repository at this point in the history
  • Loading branch information
WolfgangFahl committed Sep 3, 2020
1 parent 6e01b94 commit 2e8117b
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 8 deletions.
6 changes: 3 additions & 3 deletions dgs/diagrams.py
Expand Up @@ -183,11 +183,11 @@ def asJson(self, baseurl):
else:
jsonTxt = """{
"diagrams": {
"png": {
"url": "%s/png/%s.png"
"%s": {
"url": "%s/%s/%s.%s"
}
}
}""" % (baseurl,self.crc32)
}""" % (self.outputType,baseurl,self.outputType,self.crc32,self.outputType)
return jsonTxt


Expand Down
15 changes: 10 additions & 5 deletions dgs/webserver.py
Expand Up @@ -47,19 +47,24 @@ def render(outputType,crc32):
filename="%s.%s" % (crc32,outputType)
return send_from_directory(outputDirectory,filename)

def getParam(name):
value=request.form.get(name)
if value is None:
value=request.args.get(name)
return value

@app.route('/render', methods=['POST'])
def renderForWikiExtension():
""" endpoint for diagrams extension"""
generator=request.form.get('generator')
source=request.form.get('source')
types=request.form.get('types')
generator=getParam('generator')
source=getParam('source')
format=getParam('types')
gen=Generators.get(generator)
ip=request.remote_addr
result=gen.generate('dot',source,'png')
result=gen.generate('dot',source,format)
json=result.asJson(request.base_url)
return json


@app.route('/diagrams', methods=['GET', 'POST']) #allow both GET and POST requests
def form_example():
err=None
Expand Down
10 changes: 10 additions & 0 deletions tests/test_diagrams.py
Expand Up @@ -4,6 +4,7 @@
@author: wf
'''
import unittest
import os
from dgs.diagrams import Command,Generator,Generators,Example
debug=True
class TestDiagrams(unittest.TestCase):
Expand Down Expand Up @@ -70,11 +71,20 @@ def testGenerators(self):
assert valid

def testGenerateResult(self):
'''
test provoked error
'''
genid=Generators.generatorIdForAlias("plantuml")
gen=Generators.get(genid)
# provoke an error
result=gen.generate('unknownalias','garbage input',gen.defaultType)
json=result.asJson('http://www.doe.com')
print (json)
# there is an image version of the error
assert os.path.isfile(result.path)
# which needs to be remove to make the test reproducible
os.remove(result.path)

assert "error" in json

def testDecodeImage(self):
Expand Down

0 comments on commit 2e8117b

Please sign in to comment.