Skip to content

Commit da93a79

Browse files
committed
test(nodestore): add tests for FilestoreNodeStorage
1 parent b13f0db commit da93a79

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

tests/sentry/nodestore/filestore/__init__.py

Whitespace-only changes.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
from datetime import timedelta
2+
3+
import pytest
4+
from django.utils import timezone
5+
6+
from sentry.nodestore.filestore.backend import FilestoreNodeStorage
7+
from sentry.testutils.pytest.fixtures import django_db_all
8+
9+
10+
@django_db_all
11+
class TestFilestoreNodeStorage:
12+
13+
def setup_method(self):
14+
self.ns = FilestoreNodeStorage()
15+
16+
def test_set_and_get(self):
17+
id = "d2502ebbd7df41ceba8d3275595cac33"
18+
data = {"foo": "bar"}
19+
self.ns.set(id, data)
20+
result = self.ns.get(id=id)
21+
assert result == data
22+
23+
def test_get_not_exist(self):
24+
with pytest.raises(FileNotFoundError):
25+
self.ns.get("not_exist_123")
26+
27+
def test_set_and_get_multi(self):
28+
self.ns.set("d2502ebbd7df41ceba8d3275595cac33", {"foo": "bar"})
29+
self.ns.set("5394aa025b8e401ca6bc3ddee3130edc", {"foo": "baz"})
30+
31+
result = self.ns.get_multi(
32+
["d2502ebbd7df41ceba8d3275595cac33", "5394aa025b8e401ca6bc3ddee3130edc"]
33+
)
34+
assert result == {
35+
"d2502ebbd7df41ceba8d3275595cac33": {"foo": "bar"},
36+
"5394aa025b8e401ca6bc3ddee3130edc": {"foo": "baz"},
37+
}
38+
39+
def test_set_and_delete(self):
40+
self.ns.set("d2502ebbd7df41ceba8d3275595cac33", {"foo": "bar"})
41+
self.ns.delete("d2502ebbd7df41ceba8d3275595cac33")
42+
result = self.ns.get(id="d2502ebbd7df41ceba8d3275595cac33")
43+
44+
# It seems the default Filestore does not delete file immediately, is this expected?
45+
assert result == {"foo": "bar"}
46+
47+
def test_cleanup(self):
48+
now = timezone.now()
49+
cutoff = now - timedelta(days=1)
50+
with pytest.raises(NotImplementedError):
51+
self.ns.cleanup(cutoff)

0 commit comments

Comments
 (0)