aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_filters.py')
-rw-r--r--tests/test_filters.py91
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/test_filters.py b/tests/test_filters.py
new file mode 100644
index 0000000..dc39ddb
--- /dev/null
+++ b/tests/test_filters.py
@@ -0,0 +1,91 @@
1import pytest
2import time
3
4@pytest.mark.vcr()
5def test_filter_create(api):
6 keyword_filter = api.filter_create("anime", ['notifications'], irreversible = False, whole_word = True, expires_in = None)
7 try:
8 assert(keyword_filter)
9
10 all_filters = api.filters()
11 assert(keyword_filter in all_filters)
12 assert(keyword_filter.irreversible == False)
13 assert(keyword_filter.whole_word == True)
14
15 keyword_filter_2 = api.filter(keyword_filter.id)
16 assert(keyword_filter == keyword_filter_2)
17 finally:
18 api.filter_delete(keyword_filter)
19
20
21 keyword_filter = api.filter_create("anime", ['notifications'], irreversible = False, whole_word = False, expires_in = None)
22 try:
23 assert(keyword_filter)
24 assert(keyword_filter.irreversible == False)
25 assert(keyword_filter.whole_word == False)
26
27 all_filters = api.filters()
28 assert(keyword_filter in all_filters)
29
30 keyword_filter_2 = api.filter(keyword_filter.id)
31 assert(keyword_filter == keyword_filter_2)
32 finally:
33 api.filter_delete(keyword_filter)
34
35@pytest.mark.vcr()
36def test_filter_serverside(api, api2):
37 api.account_follow(api2.account_verify_credentials())
38 keyword_filter_1 = api.filter_create("anime", ['home'], irreversible = True, whole_word = False, expires_in = None)
39 keyword_filter_2 = api.filter_create("girugamesh", ['home'], irreversible = True, whole_word = True, expires_in = None)
40 keyword_filter_3 = api.filter_create("japanimation", ['notifications'], irreversible = True, whole_word = True, expires_in = None)
41 time.sleep(2)
42 status_1 = api2.toot("I love animes")
43 status_2 = api2.toot("Girugamesh!")
44 status_3 = api2.toot("Girugameshnetworking!")
45 status_4 = api2.toot("I love japanimation!")
46 time.sleep(2)
47 tl = api.timeline_home()
48 try:
49 assert not status_1['id'] in map(lambda st: st['id'], tl)
50 assert not status_2['id'] in map(lambda st: st['id'], tl)
51 assert status_3['id'] in map(lambda st: st['id'], tl)
52 assert status_4['id'] in map(lambda st: st['id'], tl)
53 finally:
54 api.filter_delete(keyword_filter_1)
55 api.filter_delete(keyword_filter_2)
56 api.filter_delete(keyword_filter_3)
57 api2.status_delete(status_1)
58 api2.status_delete(status_2)
59 api2.status_delete(status_3)
60 api2.status_delete(status_4)
61
62@pytest.mark.vcr()
63def test_filter_clientside(api, api2):
64 api.account_follow(api2.account_verify_credentials())
65 keyword_filter_1 = api.filter_create("anime", ['home'], irreversible = False, whole_word = False, expires_in = None)
66 keyword_filter_2 = api.filter_create("girugamesh", ['home'], irreversible = False, whole_word = True, expires_in = None)
67 keyword_filter_3 = api.filter_create("japanimation", ['notifications'], irreversible = False, whole_word = True, expires_in = None)
68 status_1 = api2.toot("I love animes")
69 status_2 = api2.toot("Girugamesh!")
70 status_3 = api2.toot("Girugameshnetworking!")
71 status_4 = api2.toot("I love japanimation!")
72 tl = api.timeline_home()
73 try:
74 assert status_1['id'] in map(lambda st: st['id'], tl)
75 assert status_2['id'] in map(lambda st: st['id'], tl)
76 assert status_3['id'] in map(lambda st: st['id'], tl)
77 assert status_4['id'] in map(lambda st: st['id'], tl)
78
79 filtered = api.filters_apply(tl, [keyword_filter_1, keyword_filter_2, keyword_filter_3], 'home')
80 assert not status_1['id'] in map(lambda st: st['id'], filtered)
81 assert not status_2['id'] in map(lambda st: st['id'], filtered)
82 assert status_3['id'] in map(lambda st: st['id'], filtered)
83 assert status_4['id'] in map(lambda st: st['id'], filtered)
84 finally:
85 api.filter_delete(keyword_filter_1)
86 api.filter_delete(keyword_filter_2)
87 api.filter_delete(keyword_filter_3)
88 api2.status_delete(status_1)
89 api2.status_delete(status_2)
90 api2.status_delete(status_3)
91 api2.status_delete(status_4)
Powered by cgit v1.2.3 (git 2.41.0)