Move verbs security tests into pytest style

This commit is contained in:
Joseph Schorr 2017-06-28 12:48:02 +03:00
parent 2f018046ec
commit 8ac20edfb2
5 changed files with 85 additions and 198 deletions

View file

@ -1,9 +1,13 @@
import datetime
import json
import base64
from contextlib import contextmanager
from data import model
from flask import g
from flask_principal import Identity
CSRF_TOKEN_KEY = '_csrf_token'
CSRF_TOKEN = '123csrfforme'
@ -36,7 +40,13 @@ def add_csrf_param(params):
return params
def conduct_call(client, resource, url_for, method, params, body=None, expected_code=200, headers=None):
def gen_basic_auth(username, password):
""" Generates a basic auth header. """
return 'Basic ' + base64.b64encode("%s:%s" % (username, password))
def conduct_call(client, resource, url_for, method, params, body=None, expected_code=200,
headers=None):
""" Conducts a call to a Flask endpoint. """
params = add_csrf_param(params)
@ -48,6 +58,9 @@ def conduct_call(client, resource, url_for, method, params, body=None, expected_
if body is not None:
body = json.dumps(body)
# Required for anonymous calls to not exception.
g.identity = Identity(None, 'none')
rv = client.open(final_url, method=method, data=body, headers=headers)
msg = '%s %s: got %s expected: %s | %s' % (method, final_url, rv.status_code, expected_code,
rv.data)