mirror of
https://github.com/Farama-Foundation/Gymnasium.git
synced 2025-08-18 04:49:12 +00:00
Fixed all environment close issues in testing (#3020)
This commit is contained in:
@@ -375,14 +375,13 @@ class AcrobotEnv(core.Env):
|
|||||||
np.array(pygame.surfarray.pixels3d(self.screen)), axes=(1, 0, 2)
|
np.array(pygame.surfarray.pixels3d(self.screen)), axes=(1, 0, 2)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
if self.screen is not None:
|
||||||
|
import pygame
|
||||||
|
|
||||||
def close(self):
|
pygame.display.quit()
|
||||||
if self.screen is not None:
|
pygame.quit()
|
||||||
import pygame
|
self.isopen = False
|
||||||
|
|
||||||
pygame.display.quit()
|
|
||||||
pygame.quit()
|
|
||||||
self.isopen = False
|
|
||||||
|
|
||||||
|
|
||||||
def wrap(x, m, M):
|
def wrap(x, m, M):
|
||||||
|
@@ -221,6 +221,10 @@ class VideoRecorder: # TODO: remove with gym 1.0
|
|||||||
if not self.enabled or self._closed:
|
if not self.enabled or self._closed:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# First close the environment
|
||||||
|
self.env.close()
|
||||||
|
|
||||||
|
# Close the encoder
|
||||||
if self.encoder:
|
if self.encoder:
|
||||||
logger.debug("Closing video encoder: path=%s", self.path)
|
logger.debug("Closing video encoder: path=%s", self.path)
|
||||||
self.encoder.close()
|
self.encoder.close()
|
||||||
|
@@ -21,10 +21,12 @@ def test_human_rendering():
|
|||||||
|
|
||||||
env.close()
|
env.close()
|
||||||
|
|
||||||
|
env = gym.make("CartPole-v1", render_mode="human")
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
AssertionError,
|
AssertionError,
|
||||||
match=re.escape(
|
match=re.escape(
|
||||||
"Expected env.render_mode to be one of 'rgb_array' or 'single_rgb_array' but got 'human'"
|
"Expected env.render_mode to be one of 'rgb_array' or 'single_rgb_array' but got 'human'"
|
||||||
),
|
),
|
||||||
):
|
):
|
||||||
HumanRendering(gym.make("CartPole-v1", render_mode="human"))
|
HumanRendering(env)
|
||||||
|
env.close()
|
||||||
|
@@ -8,7 +8,7 @@ import gym
|
|||||||
from gym.wrappers.monitoring.video_recorder import VideoRecorder
|
from gym.wrappers.monitoring.video_recorder import VideoRecorder
|
||||||
|
|
||||||
|
|
||||||
class BrokenRecordableEnv:
|
class BrokenRecordableEnv(gym.Env):
|
||||||
metadata = {"render_modes": ["rgb_array"]}
|
metadata = {"render_modes": ["rgb_array"]}
|
||||||
|
|
||||||
def __init__(self, render_mode="rgb_array"):
|
def __init__(self, render_mode="rgb_array"):
|
||||||
@@ -18,7 +18,7 @@ class BrokenRecordableEnv:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class UnrecordableEnv:
|
class UnrecordableEnv(gym.Env):
|
||||||
metadata = {"render_modes": [None]}
|
metadata = {"render_modes": [None]}
|
||||||
|
|
||||||
def __init__(self, render_mode=None):
|
def __init__(self, render_mode=None):
|
||||||
|
Reference in New Issue
Block a user