Example #1
0
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'}"
Example #2
0
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'
Example #3
0
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'
Example #4
0
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'
Example #5
0
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'