Example #1
0
def test_get_branch_by_id(webapp, session):
    message = Message(data=b'test')
    message.calculate_key()
    session.register_message(message)

    r = webapp.get('/b/' + message.key)
    assert r.status_code == 200
    assert r.content_type == 'text/uri-list'
    assert r.body.decode() == message.key
Example #2
0
def test_get_message_by_id(webapp, session):
    message = Message(data=b'test')
    message.calculate_key()
    session.register_message(message)

    r = webapp.get('/m/' + message.key)
    assert r.status_code == 200
    assert r.content_type == 'text/plain'
    assert r.body == message.data
Example #3
0
def test_message_generate_key():
    data = 'test'.encode('utf8')
    public_key = 'public key'
    message = Message(data=data, public_key=public_key)
    assert message.data == data
    assert message.public_key == public_key
    message.calculate_key()
    assert message.data == data
    assert message.public_key == public_key
    assert message.key is not None
Example #4
0
def test_sign_and_verify():
    data = 'test'.encode('utf8')
    source = 'me'
    message = Message(data=data, source=source)

    message = sign(message)
    assert message.data == data
    assert message.source == source
    assert message.public_key
    assert message.private_key
    assert message.is_written_by_me()
    assert message.verified == Verification.unverified

    message = verify(message)
    assert message.data == data
    assert message.source == source
    assert message.public_key
    assert message.private_key
    assert message.is_written_by_me()
    assert message.verified == Verification.verified
Example #5
0
def test_create_message_should_get_signed(webapp):
    data = b'hello world'
    r = webapp.post('/m', data, headers={'Content-Type': 'text/plain'})
    message_id = r.headers['key']

    r = webapp.get('/m/%s' % (message_id))
    message = Message.from_http(r.body, r.headers)
    assert message.signature is not None
    assert message.public_key is not None

    assert verify(message)
Example #6
0
def test_populate_branch_with_messages_in_the_wrong_order(session):
    messages = {}
    last = None
    for c in 'abcdefghij':
        message = Message(data=b'a')
        if last:
            message.in_reply_to = last.key
        message.calculate_key()
        last = message
        messages[c] = message

    for c in 'efbcagijhd':
        session.register_message(messages[c])

    branch = session.get_branch(messages['a'].key)
    assert len(session.get_branches()) == 1
    assert len(branch) == 10
    assert branch.root == messages['a'].key

    tree = branch.to_flat_tree()
    assert tree == [
        {'key': messages[x].key, 'level': 0}
        for x in 'abcdefghij'
    ]