~aleteoryx/muditaos

ref: c94354108f2796b271a6da7323482d1abf23aff7 muditaos/test/pytest/service-desktop/test_calendar_events.py -rwxr-xr-x 2.9 KiB
c9435410 — Maciej Gibowicz [EGD-7728] Fix refreshing contact details after editing 4 years ago
                                                                                
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
# Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
# For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
import pytest
from harness.interface.defs import status
import copy
import time

@pytest.mark.service_desktop_test
@pytest.mark.usefixtures("phone_unlocked")
def test_calendar(harness):
    # add events
    add_body = {
        "calendar_events":[
            {
                "UID":"",
                "SUMMARY":"Test1",
                "DTSTART":"20200129T123600",
                "DTEND":"20200129T124600",
                "RRULE":{
                    "COUNT":"0",
                    "FREQ":"",
                    "INTERVAL":"0"
                },
                "VALARM":{
                    "ACTION":"",
                    "TRIGGER":""
                },
                "provider":{
                    "iCalUid":"",
                    "id":"",
                    "type":""
                }
            }
        ]
    }

    UIDS = []
    ret = harness.endpoint_request("events", "put", add_body)
    assert ret["status"] == status["NoContent"]
    UIDS.insert(0,ret["body"]["UID"])
    event_count = 15
    for new_event_counter  in range(2,event_count+1):
        new_event = copy.deepcopy(add_body)
        new_event["calendar_events"][0]["SUMMARY"] = "Test" + str(new_event_counter)
        ret = harness.endpoint_request("events", "put", new_event)
        assert ret["status"] == status["NoContent"]
        UIDS.insert(new_event_counter-1,ret["body"]["UID"])

    # get events limit < pageSize - pagination not used
    limit =  2
    offset=  2
    get_body = {"limit": limit, "offset": offset}
    ret = harness.endpoint_request("events", "get", get_body)
    assert ret["status"] == status["OK"]

    # get events limit > pageSize - pagination used - basic scenario
    limit = 12
    offset=  1
    get_body = {"limit": limit, "offset": offset}
    ret = harness.endpoint_request("events", "get", get_body)
    assert ret["status"] == status["OK"]


    # get events limit > pageSize - pagination used - get all events
    count = ret["body"]["totalCount"]
    batch_size = 10
    divider = int(count / batch_size)
    reminder = count % batch_size
    events = []
    for i in range(divider):
        body = {"limit": batch_size, "offset": batch_size*i}
        ret = harness.endpoint_request("events", "get", body)
        assert ret["status"] == status["OK"]
        events = events + ret["body"]["calendar_events"]
    body = {"limit": reminder, "offset": count-reminder}
    ret = harness.endpoint_request("events", "get", body)
    assert ret["status"] == status["OK"]
    events = events + ret["body"]["calendar_events"]
    events_length = len(events)
    assert events_length
    assert events_length == count

    # remove all added events - clean up
    for ev in range(0,event_count):
        del_body = {"UID": UIDS[ev]}
        ret = harness.endpoint_request("events", "del", del_body)
        assert ret["status"] == status["NoContent"]