from pandas import DataFrame
from requests import get
from app.constants import URL, COLUMNS, FILES, DATASETS
from app.request_datasets import request_dataset
from app.preprocessing import create_dataframe
from os import remove


def test_dataset_request():
    """
    Checks that the datasets URLs are reachable
    """
    for dataset in DATASETS:
        response = get(URL.format(dataset))
        assert response.status_code == 200


def test_dataframe_creation():
    """
    Verifes that the DataFrames are created and filtered properly
    """
    for dataset in DATASETS:
        request_dataset(dataset)
        df = create_dataframe(dataset)
        remove(FILES[dataset])
        assert isinstance(df, DataFrame)
        assert list(df) == COLUMNS[dataset]