def test_path_not_found(client):
    req = u.get_request(10, 20)
    error = {"error": "The requested URL was not found on the server"}
    urls = ['/calculator/other', '/api/division']
    for url in urls:
        response = client.post(url, data=req, content_type='application/json')
        u.assert_err_response(error, 404, response)
def test_name_of_variables_incorrect(client):
    message = {
        'number_1': 10,
        'number_10': 20
    }
    error = {"error": "Variable number_2 missing in the request"}
    request = json.dumps(message)
    response = client.post('/calculator/multiplication', data=request, content_type='application/json')
    u.assert_err_response(error, 400, response)
def test_invalid_number_of_variables(client):
    message = {
        'number_1': 10,
        'number_2': 20,
        'number_3': 10
    }
    error = {"error": "Request cannot have more than two variables"}
    request = json.dumps(message)
    response = client.post('/calculator/addition', data=request, content_type='application/json')
    u.assert_err_response(error, 400, response)
def test_method_not_allowed(client):
    req = u.get_request(10, 2)
    error = {"error": "Method not allowed"}
    response = client.put('/calculator/division', data=req, content_type='application/json')
    u.assert_err_response(error, 405, response)
def test_division_error(client):
    req = u.get_request(10, 0)
    error = {"error": "Zero division error"}
    response = client.post('/calculator/division', data=req, content_type='application/json')
    u.assert_err_response(error, 500, response)
def test_invalid_json(client):
    error = {"error": "Invalid JSON request"}
    response = client.post('/calculator/multiplication', content_type='application/json')
    u.assert_err_response(error, 400, response)
def test_variables_not_numeric(client):
    req = u.get_request(10, "20")
    error = {"error": "Variables are not numeric"}
    response = client.post('/calculator/division', data=req, content_type='application/json')
    u.assert_err_response(error, 400, response)