Skip to content

Commit

Permalink
Add tests on the YChat
Browse files Browse the repository at this point in the history
  • Loading branch information
brichet committed Sep 13, 2024
1 parent 41b4a0c commit 2db8c01
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 17 deletions.
8 changes: 7 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,13 @@ jobs:
- name: Install dependencies
run: python -m pip install -U "jupyterlab>=4.0.0,<5"

- name: Build package
- name: Build the extensions
run: |
set -eux
./scripts/install.sh ${{ matrix.extension }}
pytest -vv -r ap --cov python/jupyterlab-${{ matrix.extension }}-chat
- name: Package the extensions
run: |
jlpm install
jlpm build:${{ matrix.extension }}
Expand Down
1 change: 0 additions & 1 deletion conftest.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.

import pytest

pytest_plugins = ("pytest_jupyter.jupyter_server", )
11 changes: 0 additions & 11 deletions python/jupyterlab-collaborative-chat/conftest.py

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.

# import jupyter_ydoc before YChat to avoid circular error
import jupyter_ydoc

import pytest
import time
from copy import deepcopy
from uuid import uuid4
from ..ychat import YChat

USER = {
"username": str(uuid4()),
"name": "Test user",
"display_name": "Test user"
}

USER2 = {
"username": str(uuid4()),
"name": "Test user 2",
"display_name": "Test user 2"
}


def create_message():
return {
"type": "msg",
"id": str(uuid4()),
"body": "This is a test message",
"time": time.time(),
"sender": USER["username"]
}


def test_initialize_ychat():
chat = YChat()
assert chat.get_messages() == []
assert chat.get_users() == {}
assert chat.get_metadata() == {}


def test_add_user():
chat = YChat()
chat.set_user(USER)
assert USER["username"] in chat.get_users().keys()
assert chat.get_users()[USER["username"]] == USER


def test_get_user_by_name():
chat = YChat()
chat.set_user(USER)
chat.set_user(USER2)
assert chat.get_user_by_name(USER["name"]) == USER
assert chat.get_user_by_name(USER2["name"]) == USER2
assert chat.get_user_by_name(str(uuid4())) == None


def test_add_message():
chat = YChat()
msg = create_message()
chat.add_message(msg)
assert len(chat.get_messages()) == 1
assert chat.get_messages()[0] == msg


def test_set_message_should_add():
chat = YChat()
msg = create_message()
chat.set_message(msg)
assert len(chat.get_messages()) == 1
assert chat.get_messages()[0] == msg


def test_set_message_should_update():
chat = YChat()
msg = create_message()
index = chat.add_message(msg)
msg["body"] = "Updated content"
chat.set_message(msg, index)
assert len(chat.get_messages()) == 1
assert chat.get_messages()[0] == msg


def test_set_message_should_add_with_new_id():
chat = YChat()
msg = create_message()
index = chat.add_message(msg)
new_msg = deepcopy(msg)
new_msg["id"] = str(uuid4())
new_msg["body"] = "Updated content"
chat.set_message(new_msg, index)
assert len(chat.get_messages()) == 2
assert chat.get_messages()[0] == msg
assert chat.get_messages()[1] == new_msg


def test_set_message_should_update_with_wrong_index():
chat = YChat()
msg = create_message()
chat.add_message(msg)
new_msg = create_message()
new_msg["body"] = "New content"
index = chat.add_message(new_msg)
assert index == 1
new_msg["body"] = "Updated content"
chat.set_message(new_msg, 0)
assert len(chat.get_messages()) == 2
assert chat.get_messages()[0] == msg
assert chat.get_messages()[1] == new_msg

0 comments on commit 2db8c01

Please sign in to comment.