477a3fdcdc
This ensures that we don't accidentally add a blueprint method without either explicitly blacklisting or whitelisting anonymous access
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
import unittest
|
|
|
|
from endpoints.tags import tags
|
|
from endpoints.registry import registry
|
|
from endpoints.index import index
|
|
from endpoints.verbs import verbs
|
|
|
|
|
|
class TestAnonymousAccessChecked(unittest.TestCase):
|
|
def verifyBlueprint(self, blueprint):
|
|
class Checker(object):
|
|
def __init__(self, test_case):
|
|
self.test_case = test_case
|
|
|
|
def add_url_rule(self, rule, endpoint, view_function, methods=None):
|
|
if (not '__anon_protected' in dir(view_function) and
|
|
not '__anon_allowed' in dir(view_function)):
|
|
error_message = ('Missing anonymous access protection decorator on function ' +
|
|
'%s under blueprint %s' % (endpoint, blueprint.name))
|
|
self.test_case.fail(error_message)
|
|
|
|
for deferred_function in blueprint.deferred_functions:
|
|
deferred_function(Checker(self))
|
|
|
|
def test_anonymous_access_checked(self):
|
|
self.verifyBlueprint(tags)
|
|
self.verifyBlueprint(registry)
|
|
self.verifyBlueprint(index)
|
|
self.verifyBlueprint(verbs)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|
|
|