· 7 years ago · May 01, 2018, 06:22 PM
1app = Flask(__name__)
2app.config.from_object('config')
3CsrfProtect(app)
4db = SQLAlchemy(app)
5
6import os
7basedir = os.path.abspath(os.path.dirname(__file__))
8
9DEBUG = True
10WTF_CSRF_ENABLED = True
11SECRET_KEY = 'supersecretkey'
12SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'project.db')
13SQLALCHEMY_TRACK_MODIFICATIONS = False
14
15from project import app, db
16
17class ExampleTest(unittest.TestCase):
18 def setUp(self):
19 app.config['TESTING'] = True
20 app.config['WTF_CSRF_ENABLED'] = False
21 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'
22 self.app = app.test_client()
23 db.create_all()
24
25app.config.setdefault('WTF_CSRF_METHODS', ['POST', 'PUT', 'PATCH'])
26
27from project import app, db
28
29class ExampleTest(unittest.TestCase):
30 def setUp(self):
31 app.config['TESTING'] = True
32 app.config['WTF_CSRF_METHODS'] = [] # This is the magic
33 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'
34 self.app = app.test_client()
35 db.create_all()
36
37def login(self, username, password):
38 rv = self.client.get('/login')
39 m = re.search(b'(<input id="csrf_token" name="csrf_token" type="hidden" value=")([-A-Za-z.0-9]+)', rv.data)
40
41 return self.client.post('/login', data=dict(
42 userName=username,
43 password=password,
44 csrf_token=m.group(2).decode("utf-8")
45 ), follow_redirects=True)