Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix decorator
Browse files Browse the repository at this point in the history
younik committed Nov 27, 2024
1 parent f7c3ee1 commit e13aec5
Showing 3 changed files with 17 additions and 9 deletions.
10 changes: 7 additions & 3 deletions tests/common.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import functools
import sys
import unicodedata
from typing import Any, Dict, List, Optional, Union

import gymnasium as gym
import numpy as np
import pytest
from gymnasium import spaces
from gymnasium.utils.env_checker import data_equivalence
import pytest

import minari
from minari import DataCollector, EpisodeData, MinariDataset, StepData
@@ -708,15 +709,18 @@ def get_latest_compatible_dataset_id(namespace, dataset_name):
def skip_if_error(error_type):
"""
A decorator to ignore specific error types during test execution.
:param error_type: The type of error to ignore
:return: Decorated test function
"""
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except error_type:
pytest.skip(f"Skipping test due to {error_type.__name__}")

return wrapper
return decorator

return decorator
10 changes: 7 additions & 3 deletions tests/dataset/test_dataset_download.py
Original file line number Diff line number Diff line change
@@ -4,13 +4,16 @@
import minari
from minari import MinariDataset
from minari.storage.datasets_root_dir import get_dataset_path
from tests.common import check_data_integrity, get_latest_compatible_dataset_id, skip_if_error
from tests.common import (
check_data_integrity,
get_latest_compatible_dataset_id,
skip_if_error,
)


env_names = ["pen", "door", "hammer", "relocate"]


@skip_if_error(HfHubHTTPError)
@pytest.mark.parametrize(
"dataset_id",
[
@@ -20,6 +23,7 @@
for env_name in env_names
],
)
@skip_if_error(HfHubHTTPError)
def test_download_dataset_from_farama_server(dataset_id: str):
"""Test downloading Minari datasets from remote server.
@@ -55,7 +59,6 @@ def test_download_dataset_from_farama_server(dataset_id: str):
assert dataset_id not in local_datasets


@skip_if_error(HfHubHTTPError)
@pytest.mark.parametrize(
"dataset_id",
[
@@ -65,6 +68,7 @@ def test_download_dataset_from_farama_server(dataset_id: str):
for env_name in env_names
],
)
@skip_if_error(HfHubHTTPError)
def test_load_dataset_with_download(dataset_id: str):
"""Test load dataset with and without download."""
with pytest.raises(FileNotFoundError):
6 changes: 3 additions & 3 deletions tests/test_cli.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import random

import pytest
from typer.testing import CliRunner
from huggingface_hub.errors import HfHubHTTPError
from typer.testing import CliRunner

from minari.cli import app
from minari.storage.hosting import list_remote_datasets
@@ -25,11 +25,11 @@ def test_list_app():
assert "Minari datasets in " in result.stdout


@skip_if_error(HfHubHTTPError)
@pytest.mark.parametrize(
"dataset_id",
[get_latest_compatible_dataset_id(namespace="D4RL/pen", dataset_name="human")],
)
@skip_if_error(HfHubHTTPError)
def test_dataset_download_then_delete(dataset_id: str):
"""Test download dataset invocation from CLI.
@@ -55,7 +55,6 @@ def test_dataset_download_then_delete(dataset_id: str):
assert f"Dataset {dataset_id} deleted!" in result.stdout


@skip_if_error(HfHubHTTPError)
@pytest.mark.parametrize(
"dataset_id",
random.sample(
@@ -65,6 +64,7 @@ def test_dataset_download_then_delete(dataset_id: str):
k=8,
),
)
@skip_if_error(HfHubHTTPError)
def test_minari_show(dataset_id):
result = runner.invoke(app, ["show", dataset_id])
assert result.exit_code == 0

0 comments on commit e13aec5

Please sign in to comment.