-
Vanja Matija authored200605c2
from unittest import TestCase
from pymemri import PodClient
from link_reader.data.schema import LinkPreview, Photo, Edge, Link
from link_reader.plugin import LinkReader
from tests.loader import load_mock_data
from linkpreview import link_preview
import requests
class LinkReaderTest(TestCase):
client = PodClient()
plugin = LinkReader(client=client)
def test_link_reader(self):
link_collectors = load_mock_data("link_collector")
for link in link_collectors:
edges = []
files = []
creates = []
link_item = Link(link=link["link"])
self.plugin.client.create(link_item)
preview = link_preview(link["link"])
link_reader_item = LinkPreview(
title=preview.title,
description=preview.description,
force_title=preview.force_title,
site_name=preview.site_name,
)
creates.append(link_reader_item)
try:
image = requests.get(preview.image)
image_byte = image.content
img = Photo.from_bytes(image_byte)
creates.extend([img, img.file[0]])
edges.extend(
[
Edge(img, img.file[0], "file"),
Edge(link_reader_item, img, "image"),
]
)
files.append(img.data)
except:
pass
try:
absolute_image = requests.get(preview.absolute_image)
absolute_image_byte = absolute_image.content
absolute_img = Photo.from_bytes(absolute_image_byte)
creates.extend([absolute_img, absolute_img.file[0]])
edges.extend(
[
Edge(absolute_img, absolute_img.file[0], "file"),
Edge(link_reader_item, absolute_img, "absolute_image"),
]
)
files.append(absolute_img.data)
except:
pass
self.client.bulk_action(create_items=creates, create_edges=edges)
for f in files:
self.client.upload_file(f)