mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-03-03 12:56:58 +00:00
add a test for the negative case
This commit is contained in:
parent
e8b38d8cd6
commit
6b7e0dd700
@ -80,6 +80,7 @@ _client_config = configutil.ValidConfiguration(
|
|||||||
"shares.needed",
|
"shares.needed",
|
||||||
"shares.total",
|
"shares.total",
|
||||||
"stats_gatherer.furl",
|
"stats_gatherer.furl",
|
||||||
|
"storage.plugins",
|
||||||
),
|
),
|
||||||
"drop_upload": ( # deprecated already?
|
"drop_upload": ( # deprecated already?
|
||||||
"enabled",
|
"enabled",
|
||||||
|
@ -1,20 +1,39 @@
|
|||||||
import hashlib
|
import hashlib
|
||||||
from mock import Mock
|
from mock import Mock
|
||||||
|
|
||||||
|
from fixtures import (
|
||||||
|
TempDir,
|
||||||
|
)
|
||||||
|
|
||||||
from twisted.application.service import (
|
from twisted.application.service import (
|
||||||
Service,
|
Service,
|
||||||
)
|
)
|
||||||
|
|
||||||
from twisted.trial import unittest
|
from twisted.trial import unittest
|
||||||
from twisted.internet.defer import succeed, inlineCallbacks
|
from twisted.internet.defer import succeed, inlineCallbacks
|
||||||
|
from twisted.python.filepath import (
|
||||||
|
FilePath,
|
||||||
|
)
|
||||||
|
|
||||||
from foolscap.api import (
|
from foolscap.api import (
|
||||||
Tub,
|
Tub,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from .common import (
|
||||||
|
SyncTestCase,
|
||||||
|
UseTestPlugins,
|
||||||
|
MemoryIntroducerClient,
|
||||||
|
)
|
||||||
from allmydata.util import base32, yamlutil
|
from allmydata.util import base32, yamlutil
|
||||||
from allmydata.storage_client import NativeStorageServer
|
from allmydata.client import (
|
||||||
from allmydata.storage_client import StorageFarmBroker
|
config_from_string,
|
||||||
|
create_client_from_config,
|
||||||
|
)
|
||||||
|
from allmydata.storage_client import (
|
||||||
|
NativeStorageServer,
|
||||||
|
StorageFarmBroker,
|
||||||
|
_NullStorage,
|
||||||
|
)
|
||||||
from allmydata.interfaces import (
|
from allmydata.interfaces import (
|
||||||
IConnectionStatus,
|
IConnectionStatus,
|
||||||
)
|
)
|
||||||
@ -148,6 +167,60 @@ class UnrecognizedAnnouncement(unittest.TestCase):
|
|||||||
server.get_nickname()
|
server.get_nickname()
|
||||||
|
|
||||||
|
|
||||||
|
class PluginMatchedAnnouncement(SyncTestCase):
|
||||||
|
"""
|
||||||
|
Tests for handling by ``NativeStorageServer`` of storage server
|
||||||
|
announcements that are handled by an ``IFoolscapStoragePlugin``.
|
||||||
|
"""
|
||||||
|
def setUp(self):
|
||||||
|
super(PluginMatchedAnnouncement, self).setUp()
|
||||||
|
tempdir = TempDir()
|
||||||
|
self.useFixture(tempdir)
|
||||||
|
self.basedir = FilePath(tempdir.path)
|
||||||
|
self.basedir.child(u"private").makedirs()
|
||||||
|
self.useFixture(UseTestPlugins())
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
|
def test_ignored_non_enabled_plugin(self):
|
||||||
|
"""
|
||||||
|
An announcement that could be matched by a plugin that is not enabled is
|
||||||
|
not matched.
|
||||||
|
"""
|
||||||
|
config = config_from_string(
|
||||||
|
self.basedir.asTextMode().path,
|
||||||
|
u"tub.port",
|
||||||
|
"""
|
||||||
|
[client]
|
||||||
|
introducer.furl = pb://tubid@example.invalid/swissnum
|
||||||
|
storage.plugins = tahoe-lafs-dummy-v1
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
node = yield create_client_from_config(
|
||||||
|
config,
|
||||||
|
introducer_factory=MemoryIntroducerClient,
|
||||||
|
)
|
||||||
|
[introducer_client] = node.introducer_clients
|
||||||
|
server_id = b"v0-abcdef"
|
||||||
|
ann = {
|
||||||
|
u"service-name": u"storage",
|
||||||
|
# notice how the announcement is for a different storage plugin
|
||||||
|
# than the one that is enabled.
|
||||||
|
u"name": u"tahoe-lafs-dummy-v2",
|
||||||
|
}
|
||||||
|
for subscription in introducer_client.subscribed_to:
|
||||||
|
if subscription.service_name == u"storage":
|
||||||
|
subscription.cb(
|
||||||
|
server_id,
|
||||||
|
ann,
|
||||||
|
*subscription.args,
|
||||||
|
**subscription.kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
storage_broker = node.get_storage_broker()
|
||||||
|
native_storage_server = storage_broker.servers[server_id]
|
||||||
|
self.assertIsInstance(native_storage_server._storage, _NullStorage)
|
||||||
|
|
||||||
|
|
||||||
class TestStorageFarmBroker(unittest.TestCase):
|
class TestStorageFarmBroker(unittest.TestCase):
|
||||||
|
|
||||||
def test_static_servers(self):
|
def test_static_servers(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user