File: test_chat.py

package info (click to toggle)
supysonic 0.7.2%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,716 kB
  • sloc: python: 9,315; sql: 1,029; sh: 25; makefile: 19; javascript: 6
file content (51 lines) | stat: -rw-r--r-- 1,662 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# This file is part of Supysonic.
# Supysonic is a Python implementation of the Subsonic server API.
#
# Copyright (C) 2017 Alban 'spl0k' Féron
#
# Distributed under terms of the GNU AGPLv3 license.

import unittest

import time

from .apitestbase import ApiTestBase


class ChatTestCase(ApiTestBase):
    def test_add_message(self):
        self._make_request("addChatMessage", error=10)
        rv, child = self._make_request("getChatMessages", tag="chatMessages")
        self.assertEqual(len(child), 0)

        self._make_request(
            "addChatMessage", {"message": "Heres a message"}, skip_post=True
        )
        rv, child = self._make_request("getChatMessages", tag="chatMessages")
        self.assertEqual(len(child), 1)
        self.assertEqual(child[0].get("username"), "alice")
        self.assertEqual(child[0].get("message"), "Heres a message")

    def test_get_messages(self):
        self._make_request("addChatMessage", {"message": "Hello"}, skip_post=True)
        time.sleep(1)
        self._make_request(
            "addChatMessage", {"message": "Is someone there?"}, skip_post=True
        )

        rv, child = self._make_request("getChatMessages", tag="chatMessages")
        self.assertEqual(len(child), 2)

        rv, child = self._make_request(
            "getChatMessages",
            {"since": int(time.time()) * 1000 - 500},
            tag="chatMessages",
        )
        self.assertEqual(len(child), 1)
        self.assertEqual(child[0].get("message"), "Is someone there?")

        self._make_request("getChatMessages", {"since": "invalid timestamp"}, error=0)


if __name__ == "__main__":
    unittest.main()