Spaces:
Running on T4
Running on T4
File size: 1,575 Bytes
b259333 21da591 b259333 21da591 b259333 21da591 b259333 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | """Tests for OpenEnv wrapper."""
import os
import pytest
from layer2.openenv_wrapper import OpenEnvCustomerSupport, ENV_METADATA
requires_hf_token = pytest.mark.skipif(
not os.environ.get("HF_TOKEN"),
reason="HF_TOKEN required for LLM-based tests",
)
class TestOpenEnvWrapper:
def test_metadata(self):
env = OpenEnvCustomerSupport()
assert env.metadata["id"] == "nested-rl/CustomerSupport-v0"
assert env.metadata["action_space"] == "text"
def test_reset_returns_tuple(self):
env = OpenEnvCustomerSupport()
obs, info = env.reset(seed=42)
assert "customer_message" in obs
assert "persona_id" in info
def test_step_returns_5_tuple(self):
env = OpenEnvCustomerSupport()
env.reset(seed=42)
obs, reward, terminated, truncated, info = env.step('{"intent": "transfer"}')
assert isinstance(reward, float)
assert isinstance(terminated, bool)
assert isinstance(truncated, bool)
@requires_hf_token
def test_render(self):
env = OpenEnvCustomerSupport()
env.reset(seed=42)
env.step("Hello, how can I help?")
rendered = env.render()
assert "[Customer]" in rendered
assert "[Agent]" in rendered
def test_reset_with_persona_id(self):
env = OpenEnvCustomerSupport()
obs, info = env.reset(options={"persona_id": 5})
# persona_id in info reflects the persona's .id field, not the list index
assert "persona_id" in info
assert isinstance(info["persona_id"], int)
|