def test_update_rule_missing_arguments_predicate(): # create a rule request = Request('Create', 'create-rule-for-update-test', '2345') response = handler(request, ()) print(f"create response: {response}") assert response['Status'] == 'SUCCESS' # update the rule old_properties = { 'Name': 'create-rule-for-update-test', 'MetricName': 'create-rule-for-update-test-metric', 'RateKey': 'IP', 'RateLimit': '2345' } updates = [{'Type': 'ByteMatch', 'DataId': 'data-id-1'}] request = Request('Update', 'test-update-missing-arguments-predicate', '2345', 'IP', updates, old_properties) print(f"request: {request}") response = handler(request, ()) print(f"update response: {response}") assert response['Status'] == 'FAILED' assert response['Reason'] == "Predicate {'Type': 'ByteMatch', 'DataId': 'data-id-1'} " \ "is missing required fields: {'Negated'}"
def test_update_rule_remove_predicate(): # create a rule request = Request('Create', 'create-rule-for-update-test', '2345') response = handler(request, ()) print(f"create response: {response}") assert response['Status'] == 'SUCCESS' # update the rule old_properties = { 'Name': 'create-rule-for-update-test', 'MetricName': 'create-rule-for-update-test-metric', 'RateKey': 'IP', 'RateLimit': '2345', 'MatchPredicates': [{ 'Negated': 'False', 'Type': 'IPMatch', 'DataId': 'data-id-1' }] } updates = [] request = Request('Update', 'test-update-remove', '2345', 'IP', updates, old_properties) print(f"request: {request}") response = handler(request, ()) print(f"update response: {response}") assert response['Status'] == 'SUCCESS'
def test_delete_rate_based_rule_predicate(): old_properties = { 'Name': 'create-rule-for-update-test', 'MetricName': 'create-rule-for-update-test-metric', 'RateKey': 'IP', 'RateLimit': '2345', 'MatchPredicates': [{ 'Negated': 'False', 'Type': 'IPMatch', 'DataId': 'data-id-1' }] } request = Request('Delete', 'test-delete-rate-based-rule', '2345', 'IP', old_properties=old_properties) print(f"request: {request}") response = handler(request, ()) print(f"delete response: {response}") assert response['Status'] == 'SUCCESS'
def test_create_based_rate_rule(): request = Request('Create', 'test-create-rate-based-rule', '2345') print(f"request: {request}") response = handler(request, ()) print(f"create response: {response}") assert response['Status'] == 'SUCCESS'
def test_create_rate_based_rule_predicate(): old_properties = { 'Name': 'test-create-rate-based-rule-predicate', 'MetricName': 'test-create-rate-based-rule-predicate-metric', 'RateKey': 'IP', 'RateLimit': '2345' } updates = [{'Negated': 'False', 'Type': 'IPMatch', 'DataId': 'data-id-1'}] request = Request('Create', 'test-create-rate-based-rule-predicate', '2345', 'IP', updates, old_properties) print(f"request: {request}") response = handler(request, ()) print(f"create with predicate response: {response}") assert response['Status'] == 'SUCCESS'