83 lines
3.4 KiB
Python
83 lines
3.4 KiB
Python
import pytest
|
|
from ContentFilter import ContentFilterPlugin
|
|
from Site import SiteManager
|
|
|
|
|
|
@pytest.fixture
|
|
def filter_storage():
|
|
ContentFilterPlugin.filter_storage = ContentFilterPlugin.ContentFilterStorage(SiteManager.site_manager)
|
|
return ContentFilterPlugin.filter_storage
|
|
|
|
|
|
@pytest.mark.usefixtures("resetSettings")
|
|
@pytest.mark.usefixtures("resetTempSettings")
|
|
class TestContentFilter:
|
|
def createInclude(self, site):
|
|
site.storage.writeJson("filters.json", {
|
|
"mutes": {"1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C": {}},
|
|
"siteblocks": {site.address: {}}
|
|
})
|
|
|
|
def testIncludeLoad(self, site, filter_storage):
|
|
self.createInclude(site)
|
|
filter_storage.file_content["includes"]["%s/%s" % (site.address, "filters.json")] = {
|
|
"date_added": 1528295893,
|
|
}
|
|
|
|
assert not filter_storage.include_filters["mutes"]
|
|
assert not filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C")
|
|
assert not filter_storage.isSiteblocked(site.address)
|
|
filter_storage.includeUpdateAll(update_site_dbs=False)
|
|
assert len(filter_storage.include_filters["mutes"]) == 1
|
|
assert filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C")
|
|
assert filter_storage.isSiteblocked(site.address)
|
|
|
|
def testIncludeAdd(self, site, filter_storage):
|
|
self.createInclude(site)
|
|
query_num_json = "SELECT COUNT(*) AS num FROM json WHERE directory = 'users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C'"
|
|
assert not filter_storage.isSiteblocked(site.address)
|
|
assert not filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C")
|
|
assert site.storage.query(query_num_json).fetchone()["num"] == 2
|
|
|
|
# Add include
|
|
filter_storage.includeAdd(site.address, "filters.json")
|
|
|
|
assert filter_storage.isSiteblocked(site.address)
|
|
assert filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C")
|
|
assert site.storage.query(query_num_json).fetchone()["num"] == 0
|
|
|
|
# Remove include
|
|
filter_storage.includeRemove(site.address, "filters.json")
|
|
|
|
assert not filter_storage.isSiteblocked(site.address)
|
|
assert not filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C")
|
|
assert site.storage.query(query_num_json).fetchone()["num"] == 2
|
|
|
|
def testIncludeChange(self, site, filter_storage):
|
|
self.createInclude(site)
|
|
filter_storage.includeAdd(site.address, "filters.json")
|
|
assert filter_storage.isSiteblocked(site.address)
|
|
assert filter_storage.isMuted("1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C")
|
|
|
|
# Add new blocked site
|
|
assert not filter_storage.isSiteblocked("1Hello")
|
|
|
|
filter_content = site.storage.loadJson("filters.json")
|
|
filter_content["siteblocks"]["1Hello"] = {}
|
|
site.storage.writeJson("filters.json", filter_content)
|
|
|
|
assert filter_storage.isSiteblocked("1Hello")
|
|
|
|
# Add new muted user
|
|
query_num_json = "SELECT COUNT(*) AS num FROM json WHERE directory = 'users/1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q'"
|
|
assert not filter_storage.isMuted("1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q")
|
|
assert site.storage.query(query_num_json).fetchone()["num"] == 2
|
|
|
|
filter_content["mutes"]["1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q"] = {}
|
|
site.storage.writeJson("filters.json", filter_content)
|
|
|
|
assert filter_storage.isMuted("1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q")
|
|
assert site.storage.query(query_num_json).fetchone()["num"] == 0
|
|
|
|
|