From 9e459a62f321cf02c79e162bbb9c4419f0edbaf2 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone <exarkun@twistedmatrix.com> Date: Tue, 2 Jun 2020 10:30:34 -0400 Subject: [PATCH] Direct tests for `get_rref` helper --- src/_zkapauthorizer/tests/test_plugin.py | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/_zkapauthorizer/tests/test_plugin.py b/src/_zkapauthorizer/tests/test_plugin.py index 403acd3..44c79af 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): """ -- GitLab