forked from lucaswerkmeister/tool-lexeme-forms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_flask_utils.py
29 lines (22 loc) · 984 Bytes
/
test_flask_utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import flask
import flask.json.tag
import pytest
import werkzeug.datastructures
import flask_utils
@pytest.mark.parametrize('value', [
{'a': 1, 'b': 2},
werkzeug.datastructures.OrderedMultiDict([('a', 1), ('a', 2), ('c', 4), ('b', 3)]), # type: ignore
werkzeug.datastructures.ImmutableOrderedMultiDict([('a', 1), ('a', 2), ('c', 4), ('b', 3)]), # type: ignore
])
def test_serializer(value):
serializer = flask.json.tag.TaggedJSONSerializer()
serializer.register(flask_utils.TagOrderedMultiDict, index=0)
serializer.register(flask_utils.TagImmutableOrderedMultiDict, index=0)
json = serializer.dumps(value)
value_ = serializer.loads(json)
assert value == value_
assert type(value) == type(value_)
def test_ordered_request():
app = flask_utils.OrderedFlask(__name__)
with app.test_request_context('/?a=1&a=2&c=4&b=3'):
assert list(flask.request.args.items(multi=True)) == [('a', '1'), ('a', '2'), ('c', '4'), ('b', '3')]