2023-10-04 17:23:12 +02:00
|
|
|
import io
|
|
|
|
|
|
|
|
from haystack.preview.dataclasses import ByteStream
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.unit
|
|
|
|
def test_from_file_path(tmp_path, request):
|
|
|
|
test_bytes = "Hello, world!\n".encode()
|
|
|
|
test_path = tmp_path / request.node.name
|
|
|
|
with open(test_path, "wb") as fd:
|
|
|
|
assert fd.write(test_bytes)
|
|
|
|
|
|
|
|
b = ByteStream.from_file_path(test_path)
|
|
|
|
assert b.data == test_bytes
|
2023-10-23 16:13:40 +02:00
|
|
|
assert b.mime_type == None
|
|
|
|
|
|
|
|
b = ByteStream.from_file_path(test_path, mime_type="text/plain")
|
|
|
|
assert b.data == test_bytes
|
|
|
|
assert b.mime_type == "text/plain"
|
2023-10-04 17:23:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.unit
|
|
|
|
def test_from_string():
|
|
|
|
test_string = "Hello, world!"
|
|
|
|
b = ByteStream.from_string(test_string)
|
|
|
|
assert b.data.decode() == test_string
|
2023-10-23 16:13:40 +02:00
|
|
|
assert b.mime_type == None
|
|
|
|
|
|
|
|
b = ByteStream.from_string(test_string, mime_type="text/plain")
|
|
|
|
assert b.data.decode() == test_string
|
|
|
|
assert b.mime_type == "text/plain"
|
2023-10-04 17:23:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.unit
|
|
|
|
def test_to_file(tmp_path, request):
|
|
|
|
test_str = "Hello, world!\n"
|
|
|
|
test_path = tmp_path / request.node.name
|
|
|
|
|
|
|
|
ByteStream(test_str.encode()).to_file(test_path)
|
|
|
|
with open(test_path, "rb") as fd:
|
|
|
|
assert fd.read().decode() == test_str
|