aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhalcy <halcy@ARARAGI-KUN>2022-11-07 23:11:30 +0200
committerhalcy <halcy@ARARAGI-KUN>2022-11-07 23:11:30 +0200
commit3277ca777821e76955fb26d80788939a311db9db (patch)
treebef0749a451464d00e59fb3c685e6eb6d69a8a78 /tests/test_filters.py
parent33d1e17e2e75884abd6e0a8a3e4a4da388e97e55 (diff)
downloadmastodon.py-3277ca777821e76955fb26d80788939a311db9db.tar.gz
Initial test fixing pass. Four tests still fail.
Diffstat (limited to 'tests/test_filters.py')
-rw-r--r--tests/test_filters.py193
1 files changed, 99 insertions, 94 deletions
diff --git a/tests/test_filters.py b/tests/test_filters.py
index 7accbd8..3ffa726 100644
--- a/tests/test_filters.py
+++ b/tests/test_filters.py
@@ -1,109 +1,114 @@
1import pytest 1import pytest
2import time 2import time
3import vcr
3 4
4@pytest.mark.vcr() 5@pytest.mark.vcr()
5def test_filter_create(api): 6def test_filter_create(api):
6 keyword_filter = api.filter_create("anime", ['notifications'], irreversible = False, whole_word = True, expires_in = None) 7 with vcr.use_cassette('test_filter_create.yaml', cassette_library_dir='tests/cassettes_pre_4_0_0', record_mode='none'):
7 try: 8 keyword_filter = api.filter_create("anime", ['notifications'], irreversible = False, whole_word = True, expires_in = None)
8 assert(keyword_filter) 9 try:
9 10 assert(keyword_filter)
10 all_filters = api.filters() 11
11 assert(keyword_filter in all_filters) 12 all_filters = api.filters()
12 assert(keyword_filter.irreversible == False) 13 assert(keyword_filter in all_filters)
13 assert(keyword_filter.whole_word == True) 14 assert(keyword_filter.irreversible == False)
14 15 assert(keyword_filter.whole_word == True)
15 keyword_filter_2 = api.filter(keyword_filter.id) 16
16 assert(keyword_filter == keyword_filter_2) 17 keyword_filter_2 = api.filter(keyword_filter.id)
17 finally: 18 assert(keyword_filter == keyword_filter_2)
18 api.filter_delete(keyword_filter) 19 finally:
19 20 api.filter_delete(keyword_filter)
20 21
21 keyword_filter = api.filter_create("anime", ['notifications'], irreversible = False, whole_word = False, expires_in = None) 22
22 try: 23 keyword_filter = api.filter_create("anime", ['notifications'], irreversible = False, whole_word = False, expires_in = None)
23 assert(keyword_filter) 24 try:
24 assert(keyword_filter.irreversible == False) 25 assert(keyword_filter)
25 assert(keyword_filter.whole_word == False) 26 assert(keyword_filter.irreversible == False)
26 27 assert(keyword_filter.whole_word == False)
27 all_filters = api.filters() 28
28 assert(keyword_filter in all_filters) 29 all_filters = api.filters()
29 30 assert(keyword_filter in all_filters)
30 keyword_filter_2 = api.filter(keyword_filter.id) 31
31 assert(keyword_filter == keyword_filter_2) 32 keyword_filter_2 = api.filter(keyword_filter.id)
32 finally: 33 assert(keyword_filter == keyword_filter_2)
33 api.filter_delete(keyword_filter) 34 finally:
34 time.sleep(2) 35 api.filter_delete(keyword_filter)
36 time.sleep(2)
35 37
36@pytest.mark.vcr() 38@pytest.mark.vcr()
37def test_filter_update(api): 39def test_filter_update(api):
38 keyword_filter = api.filter_create("anime", ['notifications'], irreversible = False, whole_word = True, expires_in = None) 40 with vcr.use_cassette('test_filter_update.yaml', cassette_library_dir='tests/cassettes_pre_4_0_0', record_mode='none'):
39 keyword_filter_2 = api.filter_update(keyword_filter, phrase = "japanimation") 41 keyword_filter = api.filter_create("anime", ['notifications'], irreversible = False, whole_word = True, expires_in = None)
40 keyword_filter = api.filter(keyword_filter.id) 42 keyword_filter_2 = api.filter_update(keyword_filter, phrase = "japanimation")
41 assert(keyword_filter.phrase == "japanimation") 43 keyword_filter = api.filter(keyword_filter.id)
44 assert(keyword_filter.phrase == "japanimation")
42 45
43@pytest.mark.vcr() 46@pytest.mark.vcr()
44def test_filter_serverside(api, api2): 47def test_filter_serverside(api, api2):
45 api.account_follow(api2.account_verify_credentials()) 48 with vcr.use_cassette('test_filter_serverside.yaml', cassette_library_dir='tests/cassettes_pre_4_0_0', record_mode='none'):
46 keyword_filter_1 = api.filter_create("anime", ['home'], irreversible = True, whole_word = False, expires_in = None) 49 api.account_follow(api2.account_verify_credentials())
47 keyword_filter_2 = api.filter_create("girugamesh", ['home'], irreversible = True, whole_word = True, expires_in = None) 50 keyword_filter_1 = api.filter_create("anime", ['home'], irreversible = True, whole_word = False, expires_in = None)
48 keyword_filter_3 = api.filter_create("japanimation", ['notifications'], irreversible = True, whole_word = True, expires_in = None) 51 keyword_filter_2 = api.filter_create("girugamesh", ['home'], irreversible = True, whole_word = True, expires_in = None)
49 time.sleep(2) 52 keyword_filter_3 = api.filter_create("japanimation", ['notifications'], irreversible = True, whole_word = True, expires_in = None)
50 status_1 = api2.toot("I love animes") 53 time.sleep(2)
51 status_2 = api2.toot("Girugamesh!") 54 status_1 = api2.toot("I love animes")
52 status_3 = api2.toot("Girugameshnetworking!") 55 status_2 = api2.toot("Girugamesh!")
53 status_4 = api2.toot("I love japanimation!") 56 status_3 = api2.toot("Girugameshnetworking!")
54 time.sleep(2) 57 status_4 = api2.toot("I love japanimation!")
55 tl = api.timeline_home() 58 time.sleep(2)
56 try: 59 tl = api.timeline_home()
57 assert not status_1['id'] in map(lambda st: st['id'], tl) 60 try:
58 assert not status_2['id'] in map(lambda st: st['id'], tl) 61 assert not status_1['id'] in map(lambda st: st['id'], tl)
59 assert status_3['id'] in map(lambda st: st['id'], tl) 62 assert not status_2['id'] in map(lambda st: st['id'], tl)
60 assert status_4['id'] in map(lambda st: st['id'], tl) 63 assert status_3['id'] in map(lambda st: st['id'], tl)
61 finally: 64 assert status_4['id'] in map(lambda st: st['id'], tl)
62 api.filter_delete(keyword_filter_1) 65 finally:
63 api.filter_delete(keyword_filter_2) 66 api.filter_delete(keyword_filter_1)
64 api.filter_delete(keyword_filter_3) 67 api.filter_delete(keyword_filter_2)
65 api2.status_delete(status_1) 68 api.filter_delete(keyword_filter_3)
66 api2.status_delete(status_2) 69 api2.status_delete(status_1)
67 api2.status_delete(status_3) 70 api2.status_delete(status_2)
68 api2.status_delete(status_4) 71 api2.status_delete(status_3)
69 time.sleep(2) 72 api2.status_delete(status_4)
73 time.sleep(2)
70 74
71@pytest.mark.vcr() 75@pytest.mark.vcr()
72def test_filter_clientside(api, api2): 76def test_filter_clientside(api, api2):
73 # Make sure no filters are left over from some previous run 77 with vcr.use_cassette('test_filter_clientside.yaml', cassette_library_dir='tests/cassettes_pre_4_0_0', record_mode='none'):
74 # Unclean, but neccesary 78 # Make sure no filters are left over from some previous run
75 all_filters = api.filters() 79 # Unclean, but neccesary
76 for mastodon_filter in all_filters: 80 all_filters = api.filters()
77 api.filter_delete(mastodon_filter) 81 for mastodon_filter in all_filters:
78 82 api.filter_delete(mastodon_filter)
79 time.sleep(2) 83
80 api.account_follow(api2.account_verify_credentials()) 84 time.sleep(2)
81 keyword_filter_1 = api.filter_create("anime", ['home'], irreversible = False, whole_word = False, expires_in = None) 85 api.account_follow(api2.account_verify_credentials())
82 keyword_filter_2 = api.filter_create("girugamesh", ['home'], irreversible = False, whole_word = True, expires_in = None) 86 keyword_filter_1 = api.filter_create("anime", ['home'], irreversible = False, whole_word = False, expires_in = None)
83 keyword_filter_3 = api.filter_create("japanimation", ['notifications'], irreversible = False, whole_word = True, expires_in = None) 87 keyword_filter_2 = api.filter_create("girugamesh", ['home'], irreversible = False, whole_word = True, expires_in = None)
84 status_1 = api2.toot("I love animes") 88 keyword_filter_3 = api.filter_create("japanimation", ['notifications'], irreversible = False, whole_word = True, expires_in = None)
85 status_2 = api2.toot("Girugamesh!") 89 status_1 = api2.toot("I love animes")
86 status_3 = api2.toot("Girugameshnetworking!") 90 status_2 = api2.toot("Girugamesh!")
87 status_4 = api2.toot("I love japanimation!") 91 status_3 = api2.toot("Girugameshnetworking!")
88 time.sleep(2) 92 status_4 = api2.toot("I love japanimation!")
89 93 time.sleep(2)
90 tl = api.timeline_home()
91 try:
92 assert status_1['id'] in map(lambda st: st['id'], tl)
93 assert status_2['id'] in map(lambda st: st['id'], tl)
94 assert status_3['id'] in map(lambda st: st['id'], tl)
95 assert status_4['id'] in map(lambda st: st['id'], tl)
96 94
97 filtered = api.filters_apply(tl, [keyword_filter_1, keyword_filter_2, keyword_filter_3], 'home') 95 tl = api.timeline_home()
98 assert not status_1['id'] in map(lambda st: st['id'], filtered) 96 try:
99 assert not status_2['id'] in map(lambda st: st['id'], filtered) 97 assert status_1['id'] in map(lambda st: st['id'], tl)
100 assert status_3['id'] in map(lambda st: st['id'], filtered) 98 assert status_2['id'] in map(lambda st: st['id'], tl)
101 assert status_4['id'] in map(lambda st: st['id'], filtered) 99 assert status_3['id'] in map(lambda st: st['id'], tl)
102 finally: 100 assert status_4['id'] in map(lambda st: st['id'], tl)
103 api.filter_delete(keyword_filter_1) 101
104 api.filter_delete(keyword_filter_2) 102 filtered = api.filters_apply(tl, [keyword_filter_1, keyword_filter_2, keyword_filter_3], 'home')
105 api.filter_delete(keyword_filter_3) 103 assert not status_1['id'] in map(lambda st: st['id'], filtered)
106 api2.status_delete(status_1) 104 assert not status_2['id'] in map(lambda st: st['id'], filtered)
107 api2.status_delete(status_2) 105 assert status_3['id'] in map(lambda st: st['id'], filtered)
108 api2.status_delete(status_3) 106 assert status_4['id'] in map(lambda st: st['id'], filtered)
109 api2.status_delete(status_4) 107 finally:
108 api.filter_delete(keyword_filter_1)
109 api.filter_delete(keyword_filter_2)
110 api.filter_delete(keyword_filter_3)
111 api2.status_delete(status_1)
112 api2.status_delete(status_2)
113 api2.status_delete(status_3)
114 api2.status_delete(status_4)
Powered by cgit v1.2.3 (git 2.41.0)