Skip to content

Commit 2579c25

Browse files
committed
add tests
1 parent ced5ff1 commit 2579c25

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

singlestoredb/tests/test_management.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,60 @@ def test_os_directories(self):
757757
with self.assertRaises(s2.ManagementError):
758758
st.removedirs(mkdir_test_sql)
759759

760+
def test_listdir_return_objects(self):
761+
st = self.wg.stage
762+
763+
listdir_test_dir = f'listdir_test_{id(self)}'
764+
listdir_test_sql = f'listdir_test_{id(self)}.sql'
765+
766+
# Create test directory structure
767+
st.mkdir(listdir_test_dir)
768+
st.mkdir(f'{listdir_test_dir}/nest_1')
769+
st.upload_file(TEST_DIR / 'test.sql', listdir_test_sql)
770+
st.upload_file(
771+
TEST_DIR / 'test.sql',
772+
f'{listdir_test_dir}/nested_test.sql',
773+
)
774+
775+
# Test return_objects=False (default behavior)
776+
out = st.listdir('/')
777+
assert isinstance(out, list)
778+
assert all(isinstance(item, str) for item in out)
779+
assert f'{listdir_test_dir}/' in out
780+
assert listdir_test_sql in out
781+
782+
# Test return_objects=True
783+
out_objs = st.listdir('/', return_objects=True)
784+
assert isinstance(out_objs, list)
785+
assert all(hasattr(item, 'path') for item in out_objs)
786+
assert all(hasattr(item, 'type') for item in out_objs)
787+
788+
# Verify we have the expected items
789+
obj_paths = [obj.path for obj in out_objs]
790+
assert f'{listdir_test_dir}/' in obj_paths
791+
assert listdir_test_sql in obj_paths
792+
793+
# Verify object types
794+
for obj in out_objs:
795+
if obj.path == f'{listdir_test_dir}/':
796+
assert obj.type == 'directory'
797+
elif obj.path == listdir_test_sql:
798+
assert obj.type == 'file'
799+
800+
# Test with subdirectory and return_objects=True
801+
out_objs_sub = st.listdir(listdir_test_dir, return_objects=True)
802+
assert isinstance(out_objs_sub, list)
803+
obj_paths_sub = [obj.path for obj in out_objs_sub]
804+
assert 'nest_1/' in obj_paths_sub
805+
assert 'nested_test.sql' in obj_paths_sub
806+
807+
# Test recursive with return_objects=True
808+
out_objs_rec = st.listdir('/', recursive=True, return_objects=True)
809+
obj_paths_rec = [obj.path for obj in out_objs_rec]
810+
assert f'{listdir_test_dir}/' in obj_paths_rec
811+
assert f'{listdir_test_dir}/nest_1/' in obj_paths_rec
812+
assert f'{listdir_test_dir}/nested_test.sql' in obj_paths_rec
813+
760814
def test_os_files(self):
761815
st = self.wg.stage
762816

0 commit comments

Comments
 (0)