Loading sbws/lib/resultdump.py +4 −6 Original line number Diff line number Diff line Loading @@ -4,7 +4,6 @@ import time import logging from glob import glob from threading import Thread from threading import Event from threading import RLock from queue import Queue from queue import Empty Loading @@ -14,6 +13,7 @@ from enum import Enum from sbws.globals import RESULT_VERSION, fail_hard from sbws.util.filelock import DirectoryLock from sbws.lib.relaylist import Relay from .. import settings log = logging.getLogger(__name__) Loading Loading @@ -527,13 +527,11 @@ class ResultSuccess(Result): class ResultDump: ''' Runs the enter() method in a new thread and collects new Results on its queue. Writes them to daily result files in the data directory ''' def __init__(self, args, conf, end_event): def __init__(self, args, conf): assert os.path.isdir(conf.getpath('paths', 'datadir')) assert isinstance(end_event, Event) self.conf = conf self.fresh_days = conf.getint('general', 'data_period') self.datadir = conf.getpath('paths', 'datadir') self.end_event = end_event self.data = {} self.data_lock = RLock() self.thread = Thread(target=self.enter) Loading Loading @@ -563,7 +561,7 @@ class ResultDump: assert isinstance(result, Result) fp = result.fingerprint nick = result.nickname if isinstance(result, ResultError) and self.end_event.is_set(): if isinstance(result, ResultError) and settings.end_event.is_set(): log.debug('Ignoring %s for %s %s because we are shutting down', type(result).__name__, nick, fp) return Loading @@ -586,7 +584,7 @@ class ResultDump: with self.data_lock: self.data = load_recent_results_in_datadir( self.fresh_days, self.datadir) while not (self.end_event.is_set() and self.queue.empty()): while not (settings.end_event.is_set() and self.queue.empty()): try: event = self.queue.get(timeout=1) except Empty: Loading tests/integration/lib/test_relayprioritizer.py +4 −4 Original line number Diff line number Diff line from sbws.lib.resultdump import ResultDump from sbws.lib.resultdump import ResultSuccess, ResultErrorCircuit from sbws.lib.relayprioritizer import RelayPrioritizer from threading import Event from unittest.mock import patch from sbws import settings def static_time(value): while True: Loading Loading @@ -41,8 +42,7 @@ def test_relayprioritizer_general(time_mock, sbwshome_empty, args, persistent_launch_tor): now = 1000000 time_mock.side_effect = static_time(now) end_event = Event() rd = ResultDump(args, conf, end_event) rd = ResultDump(args, conf) try: rp = RelayPrioritizer(args, conf, rl, rd) results = [] Loading @@ -66,4 +66,4 @@ def test_relayprioritizer_general(time_mock, sbwshome_empty, args, relay = best_list[pos] assert relay.nickname == nick finally: end_event.set() settings.end_event.set() Loading
sbws/lib/resultdump.py +4 −6 Original line number Diff line number Diff line Loading @@ -4,7 +4,6 @@ import time import logging from glob import glob from threading import Thread from threading import Event from threading import RLock from queue import Queue from queue import Empty Loading @@ -14,6 +13,7 @@ from enum import Enum from sbws.globals import RESULT_VERSION, fail_hard from sbws.util.filelock import DirectoryLock from sbws.lib.relaylist import Relay from .. import settings log = logging.getLogger(__name__) Loading Loading @@ -527,13 +527,11 @@ class ResultSuccess(Result): class ResultDump: ''' Runs the enter() method in a new thread and collects new Results on its queue. Writes them to daily result files in the data directory ''' def __init__(self, args, conf, end_event): def __init__(self, args, conf): assert os.path.isdir(conf.getpath('paths', 'datadir')) assert isinstance(end_event, Event) self.conf = conf self.fresh_days = conf.getint('general', 'data_period') self.datadir = conf.getpath('paths', 'datadir') self.end_event = end_event self.data = {} self.data_lock = RLock() self.thread = Thread(target=self.enter) Loading Loading @@ -563,7 +561,7 @@ class ResultDump: assert isinstance(result, Result) fp = result.fingerprint nick = result.nickname if isinstance(result, ResultError) and self.end_event.is_set(): if isinstance(result, ResultError) and settings.end_event.is_set(): log.debug('Ignoring %s for %s %s because we are shutting down', type(result).__name__, nick, fp) return Loading @@ -586,7 +584,7 @@ class ResultDump: with self.data_lock: self.data = load_recent_results_in_datadir( self.fresh_days, self.datadir) while not (self.end_event.is_set() and self.queue.empty()): while not (settings.end_event.is_set() and self.queue.empty()): try: event = self.queue.get(timeout=1) except Empty: Loading
tests/integration/lib/test_relayprioritizer.py +4 −4 Original line number Diff line number Diff line from sbws.lib.resultdump import ResultDump from sbws.lib.resultdump import ResultSuccess, ResultErrorCircuit from sbws.lib.relayprioritizer import RelayPrioritizer from threading import Event from unittest.mock import patch from sbws import settings def static_time(value): while True: Loading Loading @@ -41,8 +42,7 @@ def test_relayprioritizer_general(time_mock, sbwshome_empty, args, persistent_launch_tor): now = 1000000 time_mock.side_effect = static_time(now) end_event = Event() rd = ResultDump(args, conf, end_event) rd = ResultDump(args, conf) try: rp = RelayPrioritizer(args, conf, rl, rd) results = [] Loading @@ -66,4 +66,4 @@ def test_relayprioritizer_general(time_mock, sbwshome_empty, args, relay = best_list[pos] assert relay.nickname == nick finally: end_event.set() settings.end_event.set()