diff --git a/src/_zkapauthorizer/tests/test_plugin.py b/src/_zkapauthorizer/tests/test_plugin.py index 403acd35779e4a2b6ce571ffd592e14aab191144..44c79af85c0a783ec4af01ae06cc44309686a000 100644 --- a/src/_zkapauthorizer/tests/test_plugin.py +++ b/src/_zkapauthorizer/tests/test_plugin.py @@ -47,6 +47,8 @@ from testtools.matchers import ( HasLength, AllMatch, ContainsDict, + MatchesStructure, + IsInstance, ) from testtools.twistedsupport import ( succeeded, @@ -169,6 +171,53 @@ def get_rref(interface=None): +class GetRRefTests(TestCase): + """ + Tests for ``get_rref``. + """ + def test_localremote(self): + """ + ``get_rref`` returns an instance of ``LocalRemote``. + """ + rref = get_rref() + self.assertThat( + rref, + IsInstance(LocalRemote), + ) + + def test_remote_interface(self): + """ + ``get_rref`` returns an object which declares a remote interface matching + the one given. + """ + rref = get_rref() + self.assertThat( + rref, + AfterPreprocessing( + lambda ref: ref.tracker, + MatchesStructure( + interfaceName=Equals(RIPrivacyPassAuthorizedStorageServer.__remote_name__), + ), + ), + ) + + def test_default_remote_interface(self): + """ + ``get_rref`` returns an object which declares a + ``RIPrivacyPassAuthorizedStorageServer`` as the remote interface if no + other interface is given. + """ + rref = get_rref(RIStorageServer) + self.assertThat( + rref, + AfterPreprocessing( + lambda ref: ref.tracker, + MatchesStructure( + interfaceName=Equals(RIStorageServer.__remote_name__), + ), + ), + ) + class PluginTests(TestCase): """