blob: d4cdf054d2f84efe54f98451187ec8f5c01717ce [file]
import pytest
from base64 import b64encode
from app.data_encoders.plain_text import PlainTextEncoder
from app.data_encoders.base64_basic import Base64Encoder
@pytest.fixture
def plaintext_encoder():
return PlainTextEncoder()
@pytest.fixture
def base64_encoder():
return Base64Encoder()
@pytest.fixture
def setup_data_encoders(event_loop, data_svc):
event_loop.run_until_complete(data_svc._load_data_encoders([]))
@pytest.mark.usefixtures(
'setup_data_encoders'
)
class TestDataEncoders:
def test_retrieval(self, event_loop, data_svc):
results = event_loop.run_until_complete(data_svc.locate('data_encoders', match=dict(name='plain-text')))
assert len(results) == 1
plaintext_encoder = results[0]
assert plaintext_encoder and isinstance(plaintext_encoder, PlainTextEncoder)
results = event_loop.run_until_complete(data_svc.locate('data_encoders', match=dict(name='base64')))
assert len(results) == 1
base64_encoder = results[0]
assert base64_encoder and isinstance(base64_encoder, Base64Encoder)
def test_plaintext_encoding(self, plaintext_encoder):
data = b'this will be encoded/decoded in plaintext'
encoded = plaintext_encoder.encode(data)
assert encoded == data
decoded = plaintext_encoder.decode(encoded)
assert decoded == data
def test_base64_encoding(self, base64_encoder):
data = b'this will be encoded/decoded in base64'
encoded = base64_encoder.encode(data)
expected_encoded = b64encode(data)
assert encoded == expected_encoded
decoded = base64_encoder.decode(encoded)
assert decoded == data