File: activity_test.py

package info (click to toggle)
nc-py-api 0.19.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,320 kB
  • sloc: python: 12,415; makefile: 238; xml: 100; javascript: 56; sh: 14
file content (90 lines) | stat: -rw-r--r-- 3,154 bytes parent folder | download
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import datetime

import pytest

from nc_py_api.activity import Activity


def test_get_filters(nc_any):
    if nc_any.activity.available is False:
        pytest.skip("Activity App is not installed")
    r = nc_any.activity.get_filters()
    assert r
    for i in r:
        assert i.filter_id
        assert isinstance(i.icon, str)
        assert i.name
        assert isinstance(i.priority, int)
        assert str(i).find("name=") != -1


@pytest.mark.asyncio(scope="session")
async def test_get_filters_async(anc_any):
    if await anc_any.activity.available is False:
        pytest.skip("Activity App is not installed")
    r = await anc_any.activity.get_filters()
    assert r
    for i in r:
        assert i.filter_id
        assert isinstance(i.icon, str)
        assert i.name
        assert isinstance(i.priority, int)
        assert str(i).find("name=") != -1


def _test_get_activities(r: list[Activity]):
    assert r
    for i in r:
        assert i.activity_id
        assert isinstance(i.app, str)
        assert isinstance(i.activity_type, str)
        assert isinstance(i.actor_id, str)
        assert isinstance(i.subject, str)
        assert isinstance(i.subject_rich, list)
        assert isinstance(i.message, str)
        assert isinstance(i.message_rich, list)
        assert isinstance(i.object_type, str)
        assert isinstance(i.object_id, int)
        assert isinstance(i.object_name, str)
        assert isinstance(i.objects, dict)
        assert isinstance(i.link, str)
        assert isinstance(i.icon, str)
        assert i.time > datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc)
        assert str(i).find("app=") != -1


def test_get_activities(nc_any):
    if nc_any.activity.available is False:
        pytest.skip("Activity App is not installed")
    with pytest.raises(ValueError):
        nc_any.activity.get_activities(object_id=4)
    r = nc_any.activity.get_activities(since=True)
    _test_get_activities(r)
    r2 = nc_any.activity.get_activities(since=True)
    if r2:
        old_activities_id = [i.activity_id for i in r]
        assert r2[0].activity_id not in old_activities_id
        assert r2[-1].activity_id not in old_activities_id
    assert len(nc_any.activity.get_activities(since=0, limit=1)) == 1
    while True:
        if not nc_any.activity.get_activities(since=True):
            break


@pytest.mark.asyncio(scope="session")
async def test_get_activities_async(anc_any):
    if await anc_any.activity.available is False:
        pytest.skip("Activity App is not installed")
    with pytest.raises(ValueError):
        await anc_any.activity.get_activities(object_id=4)
    r = await anc_any.activity.get_activities(since=True)
    _test_get_activities(r)
    r2 = await anc_any.activity.get_activities(since=True)
    if r2:
        old_activities_id = [i.activity_id for i in r]
        assert r2[0].activity_id not in old_activities_id
        assert r2[-1].activity_id not in old_activities_id
    assert len(await anc_any.activity.get_activities(since=0, limit=1)) == 1
    while True:
        if not await anc_any.activity.get_activities(since=True):
            break