Skip to content

Commit

Permalink
[uniffi] Re-introduce async Python tests
Browse files Browse the repository at this point in the history
This creates async tests for most of our sync tests.
  • Loading branch information
mgeisler committed Mar 23, 2024
1 parent 2f69e73 commit 6d75bbd
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 4 deletions.
15 changes: 15 additions & 0 deletions mls-rs-uniffi/tests/client_config_default_async.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import asyncio

from mls_rs_uniffi import Client, CipherSuite, generate_signature_keypair, client_config_default


async def scenario():
client_config = client_config_default()
key = await generate_signature_keypair(CipherSuite.CURVE25519_AES128)
alice = Client(b'alice', key, client_config)

group = await alice.create_group(None)
await group.write_to_storage()


asyncio.run(scenario())
11 changes: 11 additions & 0 deletions mls-rs-uniffi/tests/generate_signature_keypair_async.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from mls_rs_uniffi import CipherSuite, generate_signature_keypair
import asyncio


async def scenario():
signature_keypair = await generate_signature_keypair(
CipherSuite.CURVE25519_AES128)
assert signature_keypair.cipher_suite == CipherSuite.CURVE25519_AES128


asyncio.run(scenario())
20 changes: 20 additions & 0 deletions mls-rs-uniffi/tests/ratchet_tree_async.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import asyncio

from mls_rs_uniffi import CipherSuite, generate_signature_keypair, Client, \
client_config_default


async def scenario():
client_config = client_config_default()
client_config.use_ratchet_tree_extension = False

key = await generate_signature_keypair(CipherSuite.CURVE25519_AES128)
alice = Client(b'alice', key, client_config)

group = await alice.create_group(None)
commit = await group.commit()

assert commit.ratchet_tree is not None


asyncio.run(scenario())
11 changes: 7 additions & 4 deletions mls-rs-uniffi/tests/scenarios.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,11 @@ macro_rules! generate_python_tests {
};
}

generate_python_tests!(generate_signature_keypair, None);
generate_python_tests!(client_config_default_sync, None);
generate_python_tests!(
generate_signature_keypair_sync,
generate_signature_keypair_async
);
generate_python_tests!(client_config_default_sync, client_config_default_async);
generate_python_tests!(custom_storage_sync, None);
generate_python_tests!(simple_scenario_sync, None);
generate_python_tests!(ratchet_tree_sync, None);
generate_python_tests!(simple_scenario_sync, simple_scenario_async);
generate_python_tests!(ratchet_tree_sync, ratchet_tree_async);
31 changes: 31 additions & 0 deletions mls-rs-uniffi/tests/simple_scenario_async.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import asyncio

from mls_rs_uniffi import CipherSuite, generate_signature_keypair, Client, \
client_config_default


async def scenario():
client_config = client_config_default()

key = await generate_signature_keypair(CipherSuite.CURVE25519_AES128)
alice = Client(b'alice', key, client_config)

key = await generate_signature_keypair(CipherSuite.CURVE25519_AES128)
bob = Client(b'bob', key, client_config)

alice = await alice.create_group(None)
message = await bob.generate_key_package_message()

commit = await alice.add_members([message])
await alice.process_incoming_message(commit.commit_message)
bob = (await bob.join_group(None, commit.welcome_messages[0])).group

msg = await alice.encrypt_application_message(b'hello, bob')
output = await bob.process_incoming_message(msg)

await alice.write_to_storage()

assert output.data == b'hello, bob'


asyncio.run(scenario())

0 comments on commit 6d75bbd

Please sign in to comment.