Skip to content

Commit 050e980

Browse files
Add tests for Django clean and get_or_create functions and fix related issues (#31)
1 parent a5953a9 commit 050e980

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

pgvector/utils/__init__.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ def from_db(value):
77
if value is None or isinstance(value, np.ndarray):
88
return value
99

10-
return np.array(value[1:-1].split(','), dtype=np.float32)
10+
# could be a string or a list if already cast by lower-level driver
11+
if isinstance(value, str):
12+
db_list = value[1:-1].split(',')
13+
else:
14+
db_list = value
15+
16+
return np.array(db_list, dtype=np.float32)
1117

1218

1319
def from_db_binary(value):

tests/test_django.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,3 +178,10 @@ def test_form_save(self):
178178
assert form.is_valid()
179179
assert form.save()
180180
assert [4, 5, 6] == Item.objects.get(pk=1).embedding.tolist()
181+
182+
def test_clean(self):
183+
item = Item(id=1, embedding=[1, 2, 3])
184+
item.full_clean()
185+
186+
def test_get_or_create(self):
187+
Item.objects.get_or_create(embedding=[1, 2, 3])

0 commit comments

Comments
 (0)