mirror of https://github.com/nucypher/nucypher.git
Removes integration tests for treasure map storage.
parent
de9b3ea2d4
commit
a37e741fc8
|
@ -98,68 +98,3 @@ def test_node_has_changed_cert(federated_alice, federated_ursulas):
|
|||
|
||||
# Cool - we didn't crash because of SSLError.
|
||||
# TODO: Assertions and such.
|
||||
|
||||
|
||||
def test_huge_treasure_maps_are_rejected(federated_alice, federated_ursulas):
|
||||
federated_alice.network_middleware = EvilMiddleWare()
|
||||
|
||||
firstula = list(federated_ursulas)[0]
|
||||
|
||||
header = Arrangement._header()
|
||||
ok_amount = 10 * 1024 # 10k
|
||||
ok_data = header + os.urandom(ok_amount)
|
||||
|
||||
with pytest.raises(BytestringSplittingError):
|
||||
federated_alice.network_middleware.upload_arbitrary_data(
|
||||
firstula, 'consider_arrangement', ok_data
|
||||
)
|
||||
|
||||
"""
|
||||
TODO: the following does not work because of this issue: https://github.com/pallets/werkzeug/issues/1513
|
||||
|
||||
it is implemented at a lower level through hendrix
|
||||
but would be nice if it could be configurable through
|
||||
flask as well and thus, testable here...
|
||||
|
||||
evil_amount = 5000 * 1024
|
||||
evil_data = os.urandom(evil_amount)
|
||||
with pytest.raises(RequestEntityTooLarge):
|
||||
federated_alice.network_middleware.upload_arbitrary_data(
|
||||
firstula, 'consider_arrangement', evil_data
|
||||
)
|
||||
"""
|
||||
|
||||
|
||||
@pytest.mark.skip("Hangs forever")
|
||||
@pytest_twisted.inlineCallbacks
|
||||
def test_hendrix_handles_content_length_validation(ursula_federated_test_config):
|
||||
node = make_federated_ursulas(ursula_config=ursula_federated_test_config, quantity=1).pop()
|
||||
node_deployer = node.get_deployer()
|
||||
|
||||
node_deployer.addServices()
|
||||
node_deployer.catalogServers(node_deployer.hendrix)
|
||||
node_deployer.start()
|
||||
|
||||
header = Arrangement._header()
|
||||
|
||||
def check_node_rejects_large_posts(node):
|
||||
too_much_data = header + os.urandom(100 * 1024)
|
||||
response = requests.post(
|
||||
"https://{}/consider_arrangement".format(node.rest_url()),
|
||||
data=too_much_data, verify=False)
|
||||
assert response.status_code > 400
|
||||
assert response.reason == "Request Entity Too Large"
|
||||
return node
|
||||
|
||||
def check_node_accepts_normal_posts(node):
|
||||
under_limit = (49 * 1024)-Versioned._HEADER_SIZE # 49K, the limit is 50K
|
||||
a_normal_arrangement = header + os.urandom(under_limit)
|
||||
response = requests.post(
|
||||
"https://{}/consider_arrangement".format(node.rest_url()),
|
||||
data=a_normal_arrangement, verify=False)
|
||||
assert response.status_code >= 500 # it still fails because we are sending random bytes
|
||||
assert response.reason != "Request Entity Too Large" # but now we are running nucypher code
|
||||
return node
|
||||
|
||||
yield threads.deferToThread(check_node_rejects_large_posts, node)
|
||||
yield threads.deferToThread(check_node_accepts_normal_posts, node)
|
||||
|
|
Loading…
Reference in New Issue