From ea051c85b362495f12c627c09d81ff44ccdf4434 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Thu, 29 Aug 2019 15:40:01 -0400 Subject: [PATCH] Improve test coverage for CORS_allow --- nilmdb/server/serverutil.py | 6 +++--- tests/test_misc.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/nilmdb/server/serverutil.py b/nilmdb/server/serverutil.py index 5e9058d..43112f1 100644 --- a/nilmdb/server/serverutil.py +++ b/nilmdb/server/serverutil.py @@ -79,12 +79,12 @@ def CORS_allow(methods): request = cherrypy.request.headers response = cherrypy.response.headers - if not isinstance(methods, (tuple, list)): # pragma: no cover + if not isinstance(methods, (tuple, list)): methods = [ methods ] methods = [ m.upper() for m in methods if m ] - if not methods: # pragma: no cover + if not methods: methods = [ 'GET', 'HEAD' ] - elif 'GET' in methods and 'HEAD' not in methods: # pragma: no cover + elif 'GET' in methods and 'HEAD' not in methods: methods.append('HEAD') response['Allow'] = ', '.join(methods) diff --git a/tests/test_misc.py b/tests/test_misc.py index 21b70c9..57c68ba 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -94,3 +94,19 @@ class TestMisc(object): with assert_raises(OSError): nilmdb.utils.diskusage.du("/dev/null/bogus") nilmdb.utils.diskusage.du("super-bogus-does-not-exist") + + def tests_cors_allow(self): + # Just to get some test coverage; these code paths aren't actually + # used in current code + cpy = nilmdb.server.serverutil.cherrypy + (req, resp) = (cpy.request, cpy.response) + cpy.request.method = "DELETE" + with assert_raises(cpy.HTTPError): + nilmdb.server.serverutil.CORS_allow(methods="POST") + with assert_raises(cpy.HTTPError): + nilmdb.server.serverutil.CORS_allow(methods=["POST"]) + with assert_raises(cpy.HTTPError): + nilmdb.server.serverutil.CORS_allow(methods=["GET"]) + with assert_raises(cpy.HTTPError): + nilmdb.server.serverutil.CORS_allow(methods=[]) + (cpy.request, cpy.response) = (req, resp)