# test_api.py
import requests
import pytest

def test_get_songs_page_2():
    url = 'http://localhost:5000/api/songs'
    params = {'page': 2}
    response = requests.get(url, params=params)

    assert response.status_code == 200

    data = response.json()
    assert data['page'] == 2
    assert data['per_page'] == 10
    assert data['start'] == 10
    assert data['end'] == 20
    assert len(data['songs']) <= 10

    print("Test for page 2 passed successfully!")


def test_get_songs_page_3():
    url = 'http://localhost:5000/api/songs'
    params = {'page': 3}
    response = requests.get(url, params=params)

    assert response.status_code == 200

    data = response.json()
    assert data['page'] == 3
    assert data['per_page'] == 10
    assert data['start'] == 20
    assert data['end'] == 30
    assert len(data['songs']) <= 10


def test_get_songs_page_6():
    url = 'http://localhost:5000/api/songs'
    params = {'page': 6}
    response = requests.get(url, params=params)

    assert response.status_code == 200

    data = response.json()
    assert data['page'] == 6
    assert data['per_page'] == 10
    assert data['start'] == 50
    assert data['end'] == 60
    assert len(data['songs']) == 9


def test_get_songs_page_7():
    url = 'http://localhost:5000/api/songs'
    params = {'page': 7}
    response = requests.get(url, params=params)

    assert response.status_code == 400


def test_get_songs_page_size_25():
    url = 'http://localhost:5000/api/songs'
    params = {'page': 1, 'page_size': 25}
    response = requests.get(url, params=params)

    assert response.status_code == 200

    data = response.json()
    assert data['page'] == 1
    assert data['per_page'] == 25
    assert data['start'] == 0
    assert data['end'] == 25
    assert len(data['songs']) == 25
