68 lines
1.8 KiB
Python
68 lines
1.8 KiB
Python
import os
|
|
import json
|
|
import tempfile
|
|
|
|
import cherrypy
|
|
from cherrypy.test import helper
|
|
|
|
from photoapp.daemon import setup_webapp
|
|
|
|
|
|
class MockAuth:
|
|
def check(self, *args, **kwargs):
|
|
return True
|
|
|
|
|
|
class PhotolibTest(helper.CPWebCase):
|
|
@classmethod
|
|
def setup_server(cls):
|
|
cls.tmpd = tempfile.TemporaryDirectory()
|
|
libd = os.path.join(cls.tmpd.name, "library")
|
|
cached = os.path.join(cls.tmpd.name, "cache")
|
|
|
|
os.mkdir(libd)
|
|
os.mkdir(cached)
|
|
|
|
setup_webapp(
|
|
"sqlite:///{}".format(os.path.join(cls.tmpd.name, "testing.db")),
|
|
"file://{}".format(libd),
|
|
"file://{}".format(cached),
|
|
None,
|
|
debug=True,
|
|
)
|
|
|
|
cherrypy.config.update({
|
|
'tools.db.on': True,
|
|
})
|
|
|
|
cls.disable_auth()
|
|
|
|
@staticmethod
|
|
def disable_auth():
|
|
cherrypy.tree.apps['/api'].config['/'].update({
|
|
'tools.auth_basic.on': False,
|
|
})
|
|
|
|
cherrypy.tree.apps[''].config['/'].update({
|
|
'tools.auth_basic.on': False,
|
|
})
|
|
|
|
def setUp(self):
|
|
self.do_gc_test = False
|
|
|
|
def getHeader(self, name):
|
|
for key, value in self.headers:
|
|
if name == key:
|
|
return value
|
|
|
|
def assertHeaderEndsWith(self, name, value):
|
|
header = self.getHeader(name)
|
|
assert header is not None, "Header '{}' not present".format(name)
|
|
assert header.endswith(value), "Needed to end with '{}' but got '{}'".format(value, header)
|
|
|
|
def postJSON(self, path, body):
|
|
body = json.dumps(body)
|
|
return self.getPage(path, method="POST", body=body,
|
|
headers=[('Content-Type', 'application/json'),
|
|
('Content-Length', str(len(body)))])
|