mirror of https://gitlab.com/bashrc2/epicyon
Potential for account directories to be outside the application directory
parent
2bda204d25
commit
00152e800e
|
@ -73,6 +73,7 @@ from tests import run_all_tests
|
||||||
from auth import store_basic_credentials
|
from auth import store_basic_credentials
|
||||||
from auth import create_password
|
from auth import create_password
|
||||||
from utils import data_dir
|
from utils import data_dir
|
||||||
|
from utils import data_dir_testing
|
||||||
from utils import string_ends_with
|
from utils import string_ends_with
|
||||||
from utils import remove_html
|
from utils import remove_html
|
||||||
from utils import remove_eol
|
from utils import remove_eol
|
||||||
|
@ -826,6 +827,7 @@ def _command_options() -> None:
|
||||||
if argb.testsnetwork:
|
if argb.testsnetwork:
|
||||||
print('Network Tests')
|
print('Network Tests')
|
||||||
base_dir = os.getcwd()
|
base_dir = os.getcwd()
|
||||||
|
data_dir_testing(base_dir)
|
||||||
test_shared_items_federation(base_dir)
|
test_shared_items_federation(base_dir)
|
||||||
test_group_follow(base_dir)
|
test_group_follow(base_dir)
|
||||||
test_post_message_between_servers(base_dir)
|
test_post_message_between_servers(base_dir)
|
||||||
|
|
|
@ -565,6 +565,8 @@ def _create_person_base(base_dir: str, nickname: str, domain: str, port: int,
|
||||||
|
|
||||||
if save_to_file:
|
if save_to_file:
|
||||||
# save person to file
|
# save person to file
|
||||||
|
if not os.path.isdir(base_dir):
|
||||||
|
os.mkdir(base_dir)
|
||||||
people_subdir = data_dir(base_dir)
|
people_subdir = data_dir(base_dir)
|
||||||
if not os.path.isdir(people_subdir):
|
if not os.path.isdir(people_subdir):
|
||||||
os.mkdir(people_subdir)
|
os.mkdir(people_subdir)
|
||||||
|
|
22
tests.py
22
tests.py
|
@ -57,6 +57,7 @@ from follow import send_follow_request_via_server
|
||||||
from follow import send_unfollow_request_via_server
|
from follow import send_unfollow_request_via_server
|
||||||
from siteactive import site_is_active
|
from siteactive import site_is_active
|
||||||
from utils import data_dir
|
from utils import data_dir
|
||||||
|
from utils import data_dir_testing
|
||||||
from utils import remove_link_tracking
|
from utils import remove_link_tracking
|
||||||
from utils import uninvert_text
|
from utils import uninvert_text
|
||||||
from utils import get_url_from_post
|
from utils import get_url_from_post
|
||||||
|
@ -8358,10 +8359,10 @@ def _test_book_link(base_dir: str):
|
||||||
max_recent_books = 1000
|
max_recent_books = 1000
|
||||||
max_cached_readers = 10
|
max_cached_readers = 10
|
||||||
|
|
||||||
base_dir += '/.testbookevents'
|
base_dir2 = base_dir + '/.testbookevents'
|
||||||
if os.path.isdir(base_dir):
|
if os.path.isdir(base_dir2):
|
||||||
shutil.rmtree(base_dir, ignore_errors=False, onerror=None)
|
shutil.rmtree(base_dir2, ignore_errors=False, onerror=None)
|
||||||
os.mkdir(base_dir)
|
os.mkdir(base_dir2)
|
||||||
|
|
||||||
content = 'Not a link'
|
content = 'Not a link'
|
||||||
result = get_book_link_from_content(content)
|
result = get_book_link_from_content(content)
|
||||||
|
@ -8440,7 +8441,7 @@ def _test_book_link(base_dir: str):
|
||||||
assert result['name'] == title
|
assert result['name'] == title
|
||||||
assert result['id'] == id_str
|
assert result['id'] == id_str
|
||||||
|
|
||||||
assert store_book_events(base_dir,
|
assert store_book_events(base_dir2,
|
||||||
post_json_object,
|
post_json_object,
|
||||||
system_language,
|
system_language,
|
||||||
languages_understood,
|
languages_understood,
|
||||||
|
@ -8557,7 +8558,7 @@ def _test_book_link(base_dir: str):
|
||||||
assert result['name'] == title
|
assert result['name'] == title
|
||||||
assert result['id'] == id_str
|
assert result['id'] == id_str
|
||||||
|
|
||||||
assert store_book_events(base_dir,
|
assert store_book_events(base_dir2,
|
||||||
post_json_object,
|
post_json_object,
|
||||||
system_language,
|
system_language,
|
||||||
languages_understood,
|
languages_understood,
|
||||||
|
@ -8609,7 +8610,7 @@ def _test_book_link(base_dir: str):
|
||||||
assert result['name'] == title
|
assert result['name'] == title
|
||||||
assert result['id'] == id_str
|
assert result['id'] == id_str
|
||||||
|
|
||||||
assert store_book_events(base_dir,
|
assert store_book_events(base_dir2,
|
||||||
post_json_object,
|
post_json_object,
|
||||||
system_language,
|
system_language,
|
||||||
languages_understood,
|
languages_understood,
|
||||||
|
@ -8658,7 +8659,7 @@ def _test_book_link(base_dir: str):
|
||||||
assert result['rating'] == rating
|
assert result['rating'] == rating
|
||||||
assert result['id'] == id_str
|
assert result['id'] == id_str
|
||||||
|
|
||||||
assert store_book_events(base_dir,
|
assert store_book_events(base_dir2,
|
||||||
post_json_object,
|
post_json_object,
|
||||||
system_language,
|
system_language,
|
||||||
languages_understood,
|
languages_understood,
|
||||||
|
@ -8678,8 +8679,8 @@ def _test_book_link(base_dir: str):
|
||||||
assert books_cache['reader_list'][expected_readers - 1] == actor
|
assert books_cache['reader_list'][expected_readers - 1] == actor
|
||||||
assert books_cache['readers'].get(actor)
|
assert books_cache['readers'].get(actor)
|
||||||
|
|
||||||
if os.path.isdir(base_dir):
|
if os.path.isdir(base_dir2):
|
||||||
shutil.rmtree(base_dir, ignore_errors=False, onerror=None)
|
shutil.rmtree(base_dir2, ignore_errors=False, onerror=None)
|
||||||
|
|
||||||
|
|
||||||
def _test_uninvert2():
|
def _test_uninvert2():
|
||||||
|
@ -8840,6 +8841,7 @@ def _test_link_tracking() -> None:
|
||||||
|
|
||||||
def run_all_tests():
|
def run_all_tests():
|
||||||
base_dir = os.getcwd()
|
base_dir = os.getcwd()
|
||||||
|
data_dir_testing(base_dir)
|
||||||
print('Running tests...')
|
print('Running tests...')
|
||||||
update_default_themes_list(os.getcwd())
|
update_default_themes_list(os.getcwd())
|
||||||
_test_source_contains_no_tabs()
|
_test_source_contains_no_tabs()
|
||||||
|
|
40
utils.py
40
utils.py
|
@ -6,6 +6,8 @@ __maintainer__ = "Bob Mottram"
|
||||||
__email__ = "bob@libreserver.org"
|
__email__ = "bob@libreserver.org"
|
||||||
__status__ = "Production"
|
__status__ = "Production"
|
||||||
__module_group__ = "Core"
|
__module_group__ = "Core"
|
||||||
|
__accounts_data_path__ = None
|
||||||
|
__accounts_data_path_tests__ = False
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
@ -570,10 +572,44 @@ def get_base_content_from_post(post_json_object: {},
|
||||||
return this_post_json['content']
|
return this_post_json['content']
|
||||||
|
|
||||||
|
|
||||||
def data_dir(base_dir) -> str:
|
def data_dir_testing(base_dir: str) -> None:
|
||||||
|
"""During unit tests __accounts_data_path__ should not be retained
|
||||||
|
"""
|
||||||
|
global __accounts_data_path__
|
||||||
|
global __accounts_data_path_tests__
|
||||||
|
__accounts_data_path_tests__ = True
|
||||||
|
__accounts_data_path__ = base_dir + '/accounts'
|
||||||
|
print('Data directory is in testing mode')
|
||||||
|
|
||||||
|
|
||||||
|
def data_dir(base_dir: str) -> str:
|
||||||
"""Returns the directory where account data is stored
|
"""Returns the directory where account data is stored
|
||||||
"""
|
"""
|
||||||
return base_dir + '/accounts'
|
global __accounts_data_path__
|
||||||
|
global __accounts_data_path_tests__
|
||||||
|
if __accounts_data_path_tests__:
|
||||||
|
__accounts_data_path__ = base_dir + '/accounts'
|
||||||
|
return __accounts_data_path__
|
||||||
|
|
||||||
|
if not __accounts_data_path__:
|
||||||
|
# the default path for accounts data
|
||||||
|
__accounts_data_path__ = base_dir + '/accounts'
|
||||||
|
|
||||||
|
# is an alternative path set?
|
||||||
|
accounts_data_path_filename = base_dir + '/data_path.txt'
|
||||||
|
if os.path.isfile(accounts_data_path_filename):
|
||||||
|
path = None
|
||||||
|
try:
|
||||||
|
with open(accounts_data_path_filename, 'r',
|
||||||
|
encoding='utf-8') as file:
|
||||||
|
path = file.read()
|
||||||
|
except OSError:
|
||||||
|
print('EX: unable to read ' + accounts_data_path_filename)
|
||||||
|
if path:
|
||||||
|
__accounts_data_path__ = path.strip()
|
||||||
|
print('Accounts data path set to ' + __accounts_data_path__)
|
||||||
|
|
||||||
|
return __accounts_data_path__
|
||||||
|
|
||||||
|
|
||||||
def acct_dir(base_dir: str, nickname: str, domain: str) -> str:
|
def acct_dir(base_dir: str, nickname: str, domain: str) -> str:
|
||||||
|
|
Loading…
Reference in New Issue