Files
visual_critical_discourse_a…/tests/image_upload_test.py
T
2024-03-20 19:13:31 +01:00

42 lines
1.2 KiB
Python

from __future__ import annotations
import os
from pathlib import Path
from dotenv import load_dotenv
from pymongo.errors import DuplicateKeyError
from core.database import connect
from core.database.classes import VisualCommunication
if __name__ == '__main__':
# get list of image paths
test_dir = Path(__file__).parent
img_dir = test_dir / 'imgs'
img_path_list = [path for path in img_dir.glob('*.jpeg') if path.is_file()]
print(img_path_list)
# instantiate data object
vis_com_list = [
VisualCommunication.from_file(path)
for path
in img_path_list
]
for vis_com in vis_com_list:
print(repr(vis_com))
# prepare env vars
env_path = test_dir.parent / 'local.env'
assert env_path.exists()
load_dotenv(env_path)
os.environ['MONGO_HOST'] = 'localhost'
# connect to database
collection, db, client = connect()
print(client.server_info())
# upload images
for vis_com in vis_com_list:
try:
result = collection.insert_one(vis_com.model_dump())
except DuplicateKeyError as exc:
print('ignoring:\n', exc)
else:
print(f"inserted document: {result}")