Skip to content

Commit 6ee6763

Browse files
committed
bug fix issue12, upgrade to libdataset v0.1.7
1 parent e8068a3 commit 6ee6763

7 files changed

+73
-2
lines changed

codemeta.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"codeRepository": "https://github.com/caltechlibrary/py_dataset",
77
"issueTracker": "https://github.com/caltechlibrary/py_dataset/issues",
88
"license": "https://data.caltech.edu/license",
9-
"version": "0.1.2",
9+
"version": "0.1.3",
1010
"author": [
1111
{
1212
"@type": "Person",

py_dataset/lib/libdataset.dll

0 Bytes
Binary file not shown.

py_dataset/lib/libdataset.dylib

0 Bytes
Binary file not shown.

py_dataset/lib/libdataset.so

8 Bytes
Binary file not shown.

release-notes-v0.1.2.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
# Release note for v0.1.3 release
2+
# Release note for v0.1.2 release
33

44
## Dropped integrations
55

release-notes-v0.1.3.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
# Release note for v0.1.3 release
3+
4+
Bug fix. The function libdataset `frame_delete()` was actaully calling
5+
clear frame. This has been corrected in dataset v0.1.7 release and
6+
here in py_dataset v0.1.3
7+

test_dataset.py

+64
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,69 @@ def test_keys(t, collection_name):
146146
t.error(f'key_sort({collection_name}, {filtered_keys}, {sort_expr}), ({q}) Expected {k} (title "{obj1["title"]}) got {keys[i]} (title "{obj2["title"]}")')
147147

148148

149+
#
150+
# test_issue12() https://github.com/caltechlibrary/py_dataset/issues/12
151+
# delete_frame() returns True but frame metadata still in memory.
152+
#
153+
def test_issue12(t, c_name):
154+
src = '''[
155+
{"id": "1", "c1": 1, "c2": 2, "c3": 3 },
156+
{"id": "2", "c1": 2, "c2": 2, "c3": 3 },
157+
{"id": "3", "c1": 3, "c2": 3, "c3": 3 },
158+
{"id": "4", "c1": 1, "c2": 1, "c3": 1 },
159+
{"id": "5", "c1": 6, "c2": 6, "c3": 6 }
160+
]'''
161+
#dataset.verbose_on() # DEBUG
162+
#dataset.use_strict_dotpath(True) # DEBUG
163+
if dataset.status(c_name) == False:
164+
if not dataset.init(c_name):
165+
err = dataset.error_message()
166+
t.error(f'failed to create {c_name}')
167+
return
168+
objects = json.loads(src)
169+
for obj in objects:
170+
key = obj['id']
171+
if dataset.has_key(c_name, key):
172+
dataset.update(c_name, key, obj)
173+
else:
174+
dataset.create(c_name, key, obj)
175+
f_names = dataset.frames(c_name)
176+
for f_name in f_names:
177+
ok = dataset.delete_frame(c_name, f_name)
178+
if ok == False:
179+
err = dataset.error_message()
180+
t.error(f'Failed to delete {f_name} from {c_name} -> "{err}"')
181+
return
182+
if dataset.has_frame(c_name, f_name) == True:
183+
t.error(f'Failed to delete frame {c_name} from {c_name}, frame still exists')
184+
return
185+
f_name = 'issue12'
186+
dot_paths = [ ".c1", "c3" ]
187+
labels = [ ".col1", ".col3" ]
188+
keys = dataset.keys(c_name)
189+
if not dataset.frame_create(c_name, f_name, keys, dot_paths, labels):
190+
err = dataset.error_message()
191+
t.error(f'failed to create {f_name} from {c_name}, {err}')
192+
if not dataset.has_frame(c_name, f_name):
193+
err = dataset.error_message()
194+
t.error(f'expected frame {f_name} to exists, {err}')
195+
return
196+
f_keys = dataset.frame_keys(c_name, f_name)
197+
if len(f_keys) == 0:
198+
err = dataset.error_message()
199+
t.error(f'expected keys in {f_name}, got zero, {err}')
200+
return
201+
f_objects = dataset.frame_objects(c_name, f_name)
202+
if len(f_objects) == 0:
203+
err = dataset.error_message()
204+
t.error(f'expected objects in {f_name}, got zero, {err}')
205+
return
206+
if not dataset.delete_frame(c_name, f_name):
207+
err = dataset.error_message()
208+
t.error(f'expected to delete {f_name} in {c_name}, {err}')
209+
210+
211+
149212
#
150213
# test_issue32() make sure issue 32 stays fixed.
151214
#
@@ -704,6 +767,7 @@ def run(self):
704767
test_runner.add(test_frame_objects, ["test_frame.ds"])
705768
test_runner.add(test_sync_csv, ["test_sync_csv.ds"])
706769
test_runner.add(test_check_repair, ["test_check_and_repair.ds"])
770+
test_runner.add(test_issue12, ['test_issue12.ds'])
707771

708772
test_runner.run()
709773

0 commit comments

Comments
 (0)