From 4222d6c0e81a9097755d3b392346616c4dcf41a1 Mon Sep 17 00:00:00 2001 From: Fabian Zills Date: Tue, 29 Oct 2024 15:49:21 +0100 Subject: [PATCH] add more tests --- js_tests/native.dict.test.js | 24 ++++++++++++++++++------ tests/test_dict.py | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/js_tests/native.dict.test.js b/js_tests/native.dict.test.js index 0eeec61..eb65529 100644 --- a/js_tests/native.dict.test.js +++ b/js_tests/native.dict.test.js @@ -2,7 +2,7 @@ import { createClient, Dict } from "znsocket"; const ZNSOCKET_URL = "http://127.0.0.1:4748"; let client; -let lst; +let dct; beforeEach(async () => { client = createClient({ url: ZNSOCKET_URL }); @@ -20,17 +20,29 @@ test("native_dict_setitem_callback", async () => { callback_value = true; }, }; - lst = new Dict({ client: client, key: "list:test", callbacks: callbacks }); - await lst.setitem("key", "value"); + dct = new Dict({ client: client, key: "dict:test", callbacks: callbacks }); + await dct.setitem("key", "value"); expect(callback_value).toBe(true); }); test("native_dict_setitem_socket_callback", async () => { let callback_value = false; - lst = new Dict({ client: client, key: "list:test" }); - lst.onRefresh((data) => { + dct = new Dict({ client: client, key: "dict:test" }); + dct.onRefresh((data) => { callback_value = data; }); - await lst.setitem("key", "value"); + await dct.setitem("key", "value"); expect(callback_value).toEqual({ keys: ["key"] }); }); + +test("native_dict_items", async () => { + dct = new Dict({ client: client, key: "dict:test" }); + await dct.setitem(5, "5"); + await dct.setitem(6, "6"); + + const items = await dct.items(); + expect(items).toEqual([ + [5, "5"], + [6, "6"], + ]); +}); \ No newline at end of file diff --git a/tests/test_dict.py b/tests/test_dict.py index f05ed2f..1540d31 100644 --- a/tests/test_dict.py +++ b/tests/test_dict.py @@ -310,3 +310,23 @@ def test_dict_refresh_delitem(client, request, znsclient): assert dct == {} znsclient.sio.sleep(0.2) mock.assert_called_with({"keys": ["a"]}) + + +@pytest.mark.parametrize( + "client", ["znsclient", "znsclient_w_redis", "redisclient", "empty"] +) +def test_dct_clear(client, request): + c = request.getfixturevalue(client) + if c is not None: + dct = znsocket.Dict(r=c, key="list:test") + assert isinstance(dct, ZnSocketObject) + else: + dct = {} + + assert len(dct) == 0 + dct.clear() + assert len(dct) == 0 + dct.update({"a": "1", "b": "2"}) + assert len(dct) == 2 + assert dct == {"a": "1", "b": "2"} + \ No newline at end of file