Skip to content

Commit

Permalink
Add Project.clear tests
Browse files Browse the repository at this point in the history
  • Loading branch information
thomass-dev committed Jan 29, 2025
1 parent 37732f0 commit ec80394
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
13 changes: 8 additions & 5 deletions skore/src/skore/project/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from collections.abc import Iterator
from logging import INFO, NullHandler, getLogger
from pathlib import Path
from shutil import rmtree
from typing import Any, Literal, Optional, Union

from skore.persistence.item import item_to_object, object_to_item
Expand Down Expand Up @@ -81,11 +80,15 @@ def __init__(
self.view_repository.put_view("default", View(layout=[]))

def clear(self):
"""Clear project."""
rmtree(self.__item_storage_dirpath, ignore_errors=True)
rmtree(self.__view_storage_dirpath, ignore_errors=True)
"""Clear the project."""
for item_key in self.item_repository:
self.item_repository.delete_item(item_key)

self.__init__(self.path, exist_ok=False)
for view_key in self.view_repository:
self.view_repository.delete_view(view_key)

# Ensure default view is available
self.view_repository.put_view("default", View(layout=[]))

def put(
self,
Expand Down
15 changes: 15 additions & 0 deletions skore/tests/unit/project/test_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,21 @@ def test_init(tmp_path):
Project(dirpath, exist_ok=True)


def test_clear(tmp_path):
dirpath = tmp_path / "my-project.skore"
project = Project(dirpath)

project.put("<key>", "<value>")

assert project.keys() == ["<key>"]

project.clear()

assert project.keys() == []
assert project.item_repository.keys() == []
assert project.view_repository.keys() == ["default"]


def test_put_string_item(in_memory_project):
in_memory_project.put("string_item", "Hello, World!")
assert in_memory_project.get("string_item") == "Hello, World!"
Expand Down

0 comments on commit ec80394

Please sign in to comment.