Cleanup of Porter tests to account for duration_periods no longer needed for sampling.

pull/2861/head
derekpierre 2022-02-02 11:23:44 -05:00 committed by Kieran Prasch
parent 2e09e61846
commit d442375e5f
9 changed files with 4 additions and 34 deletions

View File

@ -35,7 +35,6 @@ class PorterInterface(ControlInterface):
@attach_schema(porter_schema.AliceGetUrsulas)
def get_ursulas(self,
quantity: int,
duration_periods: int,
exclude_ursulas: Optional[List[ChecksumAddress]] = None,
include_ursulas: Optional[List[ChecksumAddress]] = None) -> dict:
ursulas_info = self.implementer.get_ursulas(quantity=quantity,

View File

@ -58,14 +58,6 @@ class AliceGetUrsulas(BaseSchema):
'-n',
help="Total number of Ursulas needed",
type=click.INT, required=True))
duration_periods = base_fields.PositiveInteger(
required=True,
load_only=True,
click=click.option(
'--periods',
'-p',
help="Required duration of service for Ursulas",
type=click.INT, required=True))
# optional
exclude_ursulas = base_fields.StringList(

View File

@ -30,14 +30,12 @@ def test_get_ursulas(blockchain_porter_rpc_controller, blockchain_ursulas):
expected_response_id = 0
quantity = 4
duration = 2
blockchain_ursulas_list = list(blockchain_ursulas)
include_ursulas = [blockchain_ursulas_list[0].checksum_address, blockchain_ursulas_list[1].checksum_address]
exclude_ursulas = [blockchain_ursulas_list[2].checksum_address, blockchain_ursulas_list[3].checksum_address]
get_ursulas_params = {
'quantity': quantity,
'duration_periods': duration,
'include_ursulas': include_ursulas,
'exclude_ursulas': exclude_ursulas
}

View File

@ -36,14 +36,12 @@ def test_get_ursulas(blockchain_porter_web_controller, blockchain_ursulas):
assert response.status_code == 400
quantity = 4
duration = 2
blockchain_ursulas_list = list(blockchain_ursulas)
include_ursulas = [blockchain_ursulas_list[0].checksum_address, blockchain_ursulas_list[1].checksum_address]
exclude_ursulas = [blockchain_ursulas_list[2].checksum_address, blockchain_ursulas_list[3].checksum_address]
get_ursulas_params = {
'quantity': quantity,
'duration_periods': duration,
'include_ursulas': include_ursulas,
'exclude_ursulas': exclude_ursulas
}
@ -67,7 +65,6 @@ def test_get_ursulas(blockchain_porter_web_controller, blockchain_ursulas):
# Test Query parameters
#
response = blockchain_porter_web_controller.get(f'/get_ursulas?quantity={quantity}'
f'&duration_periods={duration}'
f'&include_ursulas={",".join(include_ursulas)}'
f'&exclude_ursulas={",".join(exclude_ursulas)}')
assert response.status_code == 200
@ -197,10 +194,8 @@ def test_retrieve_cfrags(blockchain_porter,
def test_get_ursulas_basic_auth(blockchain_porter_basic_auth_web_controller):
quantity = 4
duration = 2
get_ursulas_params = {
'quantity': quantity,
'duration_periods': duration,
}
response = blockchain_porter_basic_auth_web_controller.get('/get_ursulas', data=json.dumps(get_ursulas_params))

View File

@ -22,7 +22,6 @@ from tests.utils.policy import retrieval_request_setup
def test_get_ursulas(blockchain_porter, blockchain_ursulas):
# simple
quantity = 4
duration = 2
ursulas_info = blockchain_porter.get_ursulas(quantity=quantity)
returned_ursula_addresses = {ursula_info.checksum_address for ursula_info in ursulas_info}
assert len(returned_ursula_addresses) == quantity # ensure no repeats

View File

@ -295,17 +295,16 @@ def blockchain_treasure_map(enacted_blockchain_policy, blockchain_bob):
@pytest.fixture(scope="function")
def random_blockchain_policy(testerchain, blockchain_alice, blockchain_bob, application_economics):
random_label = generate_random_label()
periods = application_economics.min_operator_seconds // 2
days = periods * (application_economics.hours_per_period // 24)
seconds = 60 * 60 * 24 # TODO This needs to be better thought out...?
now = testerchain.w3.eth.getBlock('latest').timestamp
expiration = maya.MayaDT(now).add(days=days - 1)
expiration = maya.MayaDT(now).add(seconds=seconds)
shares = 3
threshold = 2
policy = blockchain_alice.create_policy(blockchain_bob,
label=random_label,
threshold=threshold,
shares=shares,
value=shares * periods * 100,
value=shares * seconds * 100, # calculation probably needs to incorporate actual cost per second
expiration=expiration)
return policy
@ -667,7 +666,7 @@ def blockchain_ursulas(testerchain, stakers, ursula_decentralized_test_config):
workers_addresses=testerchain.ursulas_accounts)
for u in _ursulas:
u.synchronous_query_timeout = .01 # We expect to never have to wait for content that is actually on-chain during tests.
testerchain.time_travel(periods=1)
#testerchain.time_travel(periods=1)
# Bootstrap the network
for ursula_to_teach in _ursulas:

View File

@ -28,14 +28,12 @@ def test_get_ursulas(federated_porter_rpc_controller, federated_ursulas):
method = 'get_ursulas'
quantity = 4
duration = 2 # irrelevant for federated (but required)
federated_ursulas_list = list(federated_ursulas)
include_ursulas = [federated_ursulas_list[0].checksum_address, federated_ursulas_list[1].checksum_address]
exclude_ursulas = [federated_ursulas_list[2].checksum_address, federated_ursulas_list[3].checksum_address]
get_ursulas_params = {
'quantity': quantity,
'duration_periods': duration, # irrelevant for federated (but required)
'include_ursulas': include_ursulas,
'exclude_ursulas': exclude_ursulas
}

View File

@ -35,14 +35,12 @@ def test_get_ursulas(federated_porter_web_controller, federated_ursulas):
assert response.status_code == 400
quantity = 4
duration = 2 # irrelevant for federated (but required)
federated_ursulas_list = list(federated_ursulas)
include_ursulas = [federated_ursulas_list[0].checksum_address, federated_ursulas_list[1].checksum_address]
exclude_ursulas = [federated_ursulas_list[2].checksum_address, federated_ursulas_list[3].checksum_address]
get_ursulas_params = {
'quantity': quantity,
'duration_periods': duration, # irrelevant for federated (but required)
'include_ursulas': include_ursulas,
'exclude_ursulas': exclude_ursulas
}
@ -66,7 +64,6 @@ def test_get_ursulas(federated_porter_web_controller, federated_ursulas):
# Test Query parameters
#
response = federated_porter_web_controller.get(f'/get_ursulas?quantity={quantity}'
f'&duration_periods={duration}'
f'&include_ursulas={",".join(include_ursulas)}'
f'&exclude_ursulas={",".join(exclude_ursulas)}')
assert response.status_code == 200
@ -204,10 +201,8 @@ def test_endpoints_basic_auth(federated_porter_basic_auth_web_controller,
federated_alice):
# /get_ursulas
quantity = 4
duration = 2 # irrelevant for federated (but required)
get_ursulas_params = {
'quantity': quantity,
'duration_periods': duration, # irrelevant for federated (but required)
}
response = federated_porter_basic_auth_web_controller.get('/get_ursulas', data=json.dumps(get_ursulas_params))
assert response.status_code == 401 # user unauthorized

View File

@ -43,7 +43,6 @@ def test_alice_get_ursulas_schema(get_random_checksum_address):
quantity = 10
required_data = {
'quantity': quantity,
'duration_periods': 4,
}
# required args
@ -54,10 +53,6 @@ def test_alice_get_ursulas_schema(get_random_checksum_address):
with pytest.raises(InvalidInputData):
AliceGetUrsulas().load(updated_data)
updated_data = {k: v for k, v in required_data.items() if k != 'duration_periods'}
with pytest.raises(InvalidInputData):
AliceGetUrsulas().load(updated_data)
# optional components
# only exclude