mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
using the following command: ``` autopep8 -i -r --exclude $(sed -e 's|^|./|' -e 's|/$||' .ci/flake8_blacklist.txt | paste -sd,) --select E201,E202 . ```
74 lines
2.7 KiB
Python
74 lines
2.7 KiB
Python
from galaxy.web import security
|
|
|
|
|
|
test_helper_1 = security.SecurityHelper(id_secret="sec1")
|
|
test_helper_2 = security.SecurityHelper(id_secret="sec2")
|
|
|
|
|
|
def test_encode_decode():
|
|
# Different ids are encoded differently
|
|
assert test_helper_1.encode_id(1) != test_helper_1.encode_id(2)
|
|
# But decoding and encoded id brings back to original id
|
|
assert 1 == test_helper_1.decode_id(test_helper_1.encode_id(1))
|
|
|
|
|
|
def test_nested_encoding():
|
|
# Does nothing if not a dict
|
|
assert test_helper_1.encode_all_ids(1) == 1
|
|
|
|
# Encodes top-level things ending in _id
|
|
assert test_helper_1.encode_all_ids(dict(history_id=1))["history_id"] == test_helper_1.encode_id(1)
|
|
# ..except tool_id
|
|
assert test_helper_1.encode_all_ids(dict(tool_id=1))["tool_id"] == 1
|
|
|
|
# Encodes lists at top level is end in _ids
|
|
expected_ids = [test_helper_1.encode_id(1), test_helper_1.encode_id(2)]
|
|
assert test_helper_1.encode_all_ids(dict(history_ids=[1, 2]))["history_ids"] == expected_ids
|
|
|
|
# Encodes nested stuff if and only if recursive set to true.
|
|
nested_dict = dict(objects=dict(history_ids=[1, 2]))
|
|
assert test_helper_1.encode_all_ids(nested_dict)["objects"]["history_ids"] == [1, 2]
|
|
assert test_helper_1.encode_all_ids(nested_dict, recursive=False)["objects"]["history_ids"] == [1, 2]
|
|
assert test_helper_1.encode_all_ids(nested_dict, recursive=True)["objects"]["history_ids"] == expected_ids
|
|
|
|
|
|
def test_per_kind_encode_deocde():
|
|
# Different ids are encoded differently
|
|
assert test_helper_1.encode_id(1, kind="k1") != test_helper_1.encode_id(2, kind="k1")
|
|
# But decoding and encoded id brings back to original id
|
|
assert 1 == test_helper_1.decode_id(test_helper_1.encode_id(1, kind="k1"), kind="k1")
|
|
|
|
|
|
def test_different_secrets_encode_differently():
|
|
assert test_helper_1.encode_id(1) != test_helper_2.encode_id(1)
|
|
|
|
|
|
def test_per_kind_encodes_id_differently():
|
|
assert test_helper_1.encode_id(1) != test_helper_2.encode_id(1, kind="new_kind")
|
|
|
|
|
|
def test_encode_dict():
|
|
test_dict = dict(
|
|
id=1,
|
|
other=2,
|
|
history_id=3,
|
|
)
|
|
encoded_dict = test_helper_1.encode_dict_ids(test_dict)
|
|
assert encoded_dict["id"] == test_helper_1.encode_id(1)
|
|
assert encoded_dict["other"] == 2
|
|
assert encoded_dict["history_id"] == test_helper_1.encode_id(3)
|
|
|
|
|
|
def test_guid_generation():
|
|
guids = set()
|
|
for i in range(100):
|
|
guids.add(test_helper_1.get_new_guid())
|
|
assert len(guids) == 100 # Not duplicate guids generated.
|
|
|
|
|
|
def test_encode_decode_guid():
|
|
session_key = test_helper_1.get_new_guid()
|
|
encoded_key = test_helper_1.encode_guid(session_key)
|
|
decoded_key = test_helper_1.decode_guid(encoded_key).encode("utf-8")
|
|
assert session_key == decoded_key, "%s != %s" % (session_key, decoded_key)
|