Forking what is left of ZeroNet and hopefully adding an AT Proto Frontend/Proxy
at main 82 lines 3.5 kB view raw
1import pytest 2from ContentFilter import ContentFilterPlugin 3from Site import SiteManager 4 5 6@pytest.fixture 7def filter_storage(): 8 ContentFilterPlugin.filter_storage = ContentFilterPlugin.ContentFilterStorage(SiteManager.site_manager) 9 return ContentFilterPlugin.filter_storage 10 11 12@pytest.mark.usefixtures("resetSettings") 13@pytest.mark.usefixtures("resetTempSettings") 14class TestContentFilter: 15 def createInclude(self, site): 16 site.storage.writeJson("filters.json", { 17 "mutes": {"1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C": {}}, 18 "siteblocks": {site.address: {}} 19 }) 20 21 def testIncludeLoad(self, site, filter_storage): 22 self.createInclude(site) 23 filter_storage.file_content["includes"]["%s/%s" % (site.address, "filters.json")] = { 24 "date_added": 1528295893, 25 } 26 27 assert not filter_storage.include_filters["mutes"] 28 assert not filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C") 29 assert not filter_storage.isSiteblocked(site.address) 30 filter_storage.includeUpdateAll(update_site_dbs=False) 31 assert len(filter_storage.include_filters["mutes"]) == 1 32 assert filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C") 33 assert filter_storage.isSiteblocked(site.address) 34 35 def testIncludeAdd(self, site, filter_storage): 36 self.createInclude(site) 37 query_num_json = "SELECT COUNT(*) AS num FROM json WHERE directory = 'users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C'" 38 assert not filter_storage.isSiteblocked(site.address) 39 assert not filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C") 40 assert site.storage.query(query_num_json).fetchone()["num"] == 2 41 42 # Add include 43 filter_storage.includeAdd(site.address, "filters.json") 44 45 assert filter_storage.isSiteblocked(site.address) 46 assert filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C") 47 assert site.storage.query(query_num_json).fetchone()["num"] == 0 48 49 # Remove include 50 filter_storage.includeRemove(site.address, "filters.json") 51 52 assert not filter_storage.isSiteblocked(site.address) 53 assert not filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C") 54 assert site.storage.query(query_num_json).fetchone()["num"] == 2 55 56 def testIncludeChange(self, site, filter_storage): 57 self.createInclude(site) 58 filter_storage.includeAdd(site.address, "filters.json") 59 assert filter_storage.isSiteblocked(site.address) 60 assert filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C") 61 62 # Add new blocked site 63 assert not filter_storage.isSiteblocked("1Hello") 64 65 filter_content = site.storage.loadJson("filters.json") 66 filter_content["siteblocks"]["1Hello"] = {} 67 site.storage.writeJson("filters.json", filter_content) 68 69 assert filter_storage.isSiteblocked("1Hello") 70 71 # Add new muted user 72 query_num_json = "SELECT COUNT(*) AS num FROM json WHERE directory = 'users/1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q'" 73 assert not filter_storage.isMuted("1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q") 74 assert site.storage.query(query_num_json).fetchone()["num"] == 2 75 76 filter_content["mutes"]["1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q"] = {} 77 site.storage.writeJson("filters.json", filter_content) 78 79 assert filter_storage.isMuted("1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q") 80 assert site.storage.query(query_num_json).fetchone()["num"] == 0 81 82