update component tests

This commit is contained in:
Jack Robison 2018-08-02 15:54:43 -04:00
parent 8533bfa7c5
commit 4ef4a4816f
No known key found for this signature in database
GPG key ID: DF25C68FE0239BB2
3 changed files with 61 additions and 38 deletions

View file

@ -414,8 +414,8 @@ class FakeDelayedWallet(FakeComponent):
return d return d
class FakeDelayedSession(FakeComponent): class FakeDelayedBlobManager(FakeComponent):
component_name = "session" component_name = "blob_manager"
depends_on = [FakeDelayedWallet.component_name] depends_on = [FakeDelayedWallet.component_name]
def start(self): def start(self):
@ -431,7 +431,7 @@ class FakeDelayedSession(FakeComponent):
class FakeDelayedFileManager(FakeComponent): class FakeDelayedFileManager(FakeComponent):
component_name = "file_manager" component_name = "file_manager"
depends_on = [FakeDelayedSession.component_name] depends_on = [FakeDelayedBlobManager.component_name]
def start(self): def start(self):
d = defer.Deferred() d = defer.Deferred()
@ -441,6 +441,7 @@ class FakeDelayedFileManager(FakeComponent):
def stop(self): def stop(self):
return defer.succeed(True) return defer.succeed(True)
class FakeFileManager(FakeComponent): class FakeFileManager(FakeComponent):
component_name = "file_manager" component_name = "file_manager"
depends_on = [] depends_on = []

View file

@ -5,6 +5,7 @@ from lbrynet.daemon.ComponentManager import ComponentManager
from lbrynet.daemon.Components import DATABASE_COMPONENT, DHT_COMPONENT, STREAM_IDENTIFIER_COMPONENT from lbrynet.daemon.Components import DATABASE_COMPONENT, DHT_COMPONENT, STREAM_IDENTIFIER_COMPONENT
from lbrynet.daemon.Components import HASH_ANNOUNCER_COMPONENT, REFLECTOR_COMPONENT, UPNP_COMPONENT from lbrynet.daemon.Components import HASH_ANNOUNCER_COMPONENT, REFLECTOR_COMPONENT, UPNP_COMPONENT
from lbrynet.daemon.Components import PEER_PROTOCOL_SERVER_COMPONENT, EXCHANGE_RATE_MANAGER_COMPONENT from lbrynet.daemon.Components import PEER_PROTOCOL_SERVER_COMPONENT, EXCHANGE_RATE_MANAGER_COMPONENT
from lbrynet.daemon.Components import BLOB_COMPONENT, RATE_LIMITER_COMPONENT, HEADERS_COMPONENT, PAYMENT_RATE_COMPONENT
from lbrynet.daemon import Components from lbrynet.daemon import Components
from lbrynet.tests import mocks from lbrynet.tests import mocks
@ -13,17 +14,32 @@ class TestComponentManager(unittest.TestCase):
def setUp(self): def setUp(self):
mocks.mock_conf_settings(self) mocks.mock_conf_settings(self)
self.default_components_sort = [ self.default_components_sort = [
[Components.DatabaseComponent, [
Components.ExchangeRateManagerComponent, Components.HeadersComponent,
Components.UPnPComponent], Components.DatabaseComponent,
[Components.DHTComponent, Components.ExchangeRateManagerComponent,
Components.WalletComponent], Components.PaymentRateComponent,
[Components.HashAnnouncerComponent], Components.RateLimiterComponent,
[Components.SessionComponent], Components.UPnPComponent
[Components.PeerProtocolServerComponent, ],
Components.StreamIdentifierComponent], [
[Components.FileManagerComponent], Components.DHTComponent,
[Components.ReflectorComponent] Components.WalletComponent
],
[
Components.BlobComponent,
Components.HashAnnouncerComponent
],
[
Components.PeerProtocolServerComponent,
Components.StreamIdentifierComponent
],
[
Components.FileManagerComponent
],
[
Components.ReflectorComponent
]
] ]
self.component_manager = ComponentManager() self.component_manager = ComponentManager()
@ -87,11 +103,12 @@ class TestComponentManagerProperStart(unittest.TestCase):
self.component_manager = ComponentManager( self.component_manager = ComponentManager(
skip_components=[DATABASE_COMPONENT, DHT_COMPONENT, HASH_ANNOUNCER_COMPONENT, STREAM_IDENTIFIER_COMPONENT, skip_components=[DATABASE_COMPONENT, DHT_COMPONENT, HASH_ANNOUNCER_COMPONENT, STREAM_IDENTIFIER_COMPONENT,
PEER_PROTOCOL_SERVER_COMPONENT, REFLECTOR_COMPONENT, UPNP_COMPONENT, PEER_PROTOCOL_SERVER_COMPONENT, REFLECTOR_COMPONENT, UPNP_COMPONENT,
HEADERS_COMPONENT, PAYMENT_RATE_COMPONENT, RATE_LIMITER_COMPONENT,
EXCHANGE_RATE_MANAGER_COMPONENT], EXCHANGE_RATE_MANAGER_COMPONENT],
reactor=self.reactor, reactor=self.reactor,
wallet=mocks.FakeDelayedWallet, wallet=mocks.FakeDelayedWallet,
session=mocks.FakeDelayedSession, file_manager=mocks.FakeDelayedFileManager,
file_manager=mocks.FakeDelayedFileManager blob_manager=mocks.FakeDelayedBlobManager
) )
def tearDown(self): def tearDown(self):
@ -100,17 +117,17 @@ class TestComponentManagerProperStart(unittest.TestCase):
def test_proper_starting_of_components(self): def test_proper_starting_of_components(self):
self.component_manager.setup() self.component_manager.setup()
self.assertTrue(self.component_manager.get_component('wallet').running) self.assertTrue(self.component_manager.get_component('wallet').running)
self.assertFalse(self.component_manager.get_component('session').running) self.assertFalse(self.component_manager.get_component('blob_manager').running)
self.assertFalse(self.component_manager.get_component('file_manager').running) self.assertFalse(self.component_manager.get_component('file_manager').running)
self.reactor.advance(1) self.reactor.advance(1)
self.assertTrue(self.component_manager.get_component('wallet').running) self.assertTrue(self.component_manager.get_component('wallet').running)
self.assertTrue(self.component_manager.get_component('session').running) self.assertTrue(self.component_manager.get_component('blob_manager').running)
self.assertFalse(self.component_manager.get_component('file_manager').running) self.assertFalse(self.component_manager.get_component('file_manager').running)
self.reactor.advance(1) self.reactor.advance(1)
self.assertTrue(self.component_manager.get_component('wallet').running) self.assertTrue(self.component_manager.get_component('wallet').running)
self.assertTrue(self.component_manager.get_component('session').running) self.assertTrue(self.component_manager.get_component('blob_manager').running)
self.assertTrue(self.component_manager.get_component('file_manager').running) self.assertTrue(self.component_manager.get_component('file_manager').running)
def test_proper_stopping_of_components(self): def test_proper_stopping_of_components(self):
@ -119,15 +136,15 @@ class TestComponentManagerProperStart(unittest.TestCase):
self.reactor.advance(1) self.reactor.advance(1)
self.component_manager.stop() self.component_manager.stop()
self.assertFalse(self.component_manager.get_component('file_manager').running) self.assertFalse(self.component_manager.get_component('file_manager').running)
self.assertTrue(self.component_manager.get_component('session').running) self.assertTrue(self.component_manager.get_component('blob_manager').running)
self.assertTrue(self.component_manager.get_component('wallet').running) self.assertTrue(self.component_manager.get_component('wallet').running)
self.reactor.advance(1) self.reactor.advance(1)
self.assertFalse(self.component_manager.get_component('file_manager').running) self.assertFalse(self.component_manager.get_component('file_manager').running)
self.assertFalse(self.component_manager.get_component('session').running) self.assertFalse(self.component_manager.get_component('blob_manager').running)
self.assertTrue(self.component_manager.get_component('wallet').running) self.assertTrue(self.component_manager.get_component('wallet').running)
self.reactor.advance(1) self.reactor.advance(1)
self.assertFalse(self.component_manager.get_component('file_manager').running) self.assertFalse(self.component_manager.get_component('file_manager').running)
self.assertFalse(self.component_manager.get_component('session').running) self.assertFalse(self.component_manager.get_component('blob_manager').running)
self.assertFalse(self.component_manager.get_component('wallet').running) self.assertFalse(self.component_manager.get_component('wallet').running)

View file

@ -19,7 +19,7 @@ from lbrynet.daemon.Components import HASH_ANNOUNCER_COMPONENT, REFLECTOR_COMPON
from lbrynet.daemon.Components import PEER_PROTOCOL_SERVER_COMPONENT, EXCHANGE_RATE_MANAGER_COMPONENT from lbrynet.daemon.Components import PEER_PROTOCOL_SERVER_COMPONENT, EXCHANGE_RATE_MANAGER_COMPONENT
from lbrynet.daemon.Daemon import Daemon as LBRYDaemon from lbrynet.daemon.Daemon import Daemon as LBRYDaemon
from lbrynet.file_manager.EncryptedFileDownloader import ManagedEncryptedFileDownloader from lbrynet.file_manager.EncryptedFileDownloader import ManagedEncryptedFileDownloader
from lbrynet.core.PaymentRateManager import OnlyFreePaymentsManager
from lbrynet.tests import util from lbrynet.tests import util
from lbrynet.tests.mocks import mock_conf_settings, FakeNetwork, FakeFileManager from lbrynet.tests.mocks import mock_conf_settings, FakeNetwork, FakeFileManager
from lbrynet.tests.mocks import ExchangeRateManager as DummyExchangeRateManager from lbrynet.tests.mocks import ExchangeRateManager as DummyExchangeRateManager
@ -39,7 +39,8 @@ def get_test_daemon(data_rate=None, generous=True, with_fee=False):
'BTCLBC': {'spot': 3.0, 'ts': util.DEFAULT_ISO_TIME + 1}, 'BTCLBC': {'spot': 3.0, 'ts': util.DEFAULT_ISO_TIME + 1},
'USDBTC': {'spot': 2.0, 'ts': util.DEFAULT_ISO_TIME + 2} 'USDBTC': {'spot': 2.0, 'ts': util.DEFAULT_ISO_TIME + 2}
} }
daemon = LBRYDaemon(None) daemon = LBRYDaemon()
daemon.payment_rate_manager = OnlyFreePaymentsManager()
daemon.wallet = mock.Mock(spec=Wallet.LBRYumWallet) daemon.wallet = mock.Mock(spec=Wallet.LBRYumWallet)
daemon.wallet.wallet = mock.Mock(spec=NewWallet) daemon.wallet.wallet = mock.Mock(spec=NewWallet)
daemon.wallet.wallet.use_encryption = False daemon.wallet.wallet.use_encryption = False
@ -85,26 +86,26 @@ class TestCostEst(unittest.TestCase):
daemon = get_test_daemon(generous=True, with_fee=True) daemon = get_test_daemon(generous=True, with_fee=True)
self.assertEquals(daemon.get_est_cost("test", size).result, correct_result) self.assertEquals(daemon.get_est_cost("test", size).result, correct_result)
def test_fee_and_ungenerous_data(self): # def test_fee_and_ungenerous_data(self):
size = 10000000 # size = 10000000
fake_fee_amount = 4.5 # fake_fee_amount = 4.5
data_rate = conf.ADJUSTABLE_SETTINGS['data_rate'][1] # data_rate = conf.ADJUSTABLE_SETTINGS['data_rate'][1]
correct_result = size / 10 ** 6 * data_rate + fake_fee_amount # correct_result = size / 10 ** 6 * data_rate + fake_fee_amount
daemon = get_test_daemon(generous=False, with_fee=True) # daemon = get_test_daemon(generous=False, with_fee=True)
self.assertEquals(daemon.get_est_cost("test", size).result, correct_result) # self.assertEquals(daemon.get_est_cost("test", size).result, correct_result)
def test_generous_data_and_no_fee(self): def test_generous_data_and_no_fee(self):
size = 10000000 size = 10000000
correct_result = 0.0 correct_result = 0.0
daemon = get_test_daemon(generous=True) daemon = get_test_daemon(generous=True)
self.assertEquals(daemon.get_est_cost("test", size).result, correct_result) self.assertEquals(daemon.get_est_cost("test", size).result, correct_result)
#
def test_ungenerous_data_and_no_fee(self): # def test_ungenerous_data_and_no_fee(self):
size = 10000000 # size = 10000000
data_rate = conf.ADJUSTABLE_SETTINGS['data_rate'][1] # data_rate = conf.ADJUSTABLE_SETTINGS['data_rate'][1]
correct_result = size / 10 ** 6 * data_rate # correct_result = size / 10 ** 6 * data_rate
daemon = get_test_daemon(generous=False) # daemon = get_test_daemon(generous=False)
self.assertEquals(daemon.get_est_cost("test", size).result, correct_result) # self.assertEquals(daemon.get_est_cost("test", size).result, correct_result)
class TestJsonRpc(unittest.TestCase): class TestJsonRpc(unittest.TestCase):
@ -116,6 +117,10 @@ class TestJsonRpc(unittest.TestCase):
mock_conf_settings(self) mock_conf_settings(self)
util.resetTime(self) util.resetTime(self)
self.test_daemon = get_test_daemon() self.test_daemon = get_test_daemon()
for component in self.test_daemon.component_manager.components:
if component.component_name == "file_manager":
component._running = True
self.test_daemon.wallet.is_first_run = False self.test_daemon.wallet.is_first_run = False
self.test_daemon.wallet.get_best_blockhash = noop self.test_daemon.wallet.get_best_blockhash = noop