self.proto = proto
self._client_capabilities = None
- def capability_line(self):
- return " ".join(self.capabilities())
+ @classmethod
+ def capability_line(cls):
+ return " ".join(cls.capabilities())
- def capabilities(self):
- raise NotImplementedError(self.capabilities)
+ @classmethod
+ def capabilities(cls):
+ raise NotImplementedError(cls.capabilities)
- def innocuous_capabilities(self):
+ @classmethod
+ def innocuous_capabilities(cls):
return ("include-tag", "thin-pack", "no-progress", "ofs-delta")
- def required_capabilities(self):
+ @classmethod
+ def required_capabilities(cls):
"""Return a list of capabilities that we require the client to have."""
return []
self.stateless_rpc = stateless_rpc
self.advertise_refs = advertise_refs
- def capabilities(self):
+ @classmethod
+ def capabilities(cls):
return ("multi_ack_detailed", "multi_ack", "side-band-64k", "thin-pack",
"ofs-delta", "no-progress", "include-tag")
- def required_capabilities(self):
+ @classmethod
+ def required_capabilities(cls):
return ("side-band-64k", "thin-pack", "ofs-delta")
def progress(self, message):
self.stateless_rpc = stateless_rpc
self.advertise_refs = advertise_refs
- def capabilities(self):
+ @classmethod
+ def capabilities(cls):
return ("report-status", "delete-refs")
def _apply_pack(self, refs):
return None
+class TestGenericHandler(Handler):
+
+ def __init__(self):
+ Handler.__init__(self, Backend(), None)
+
+ @classmethod
+ def capabilities(cls):
+ return ('cap1', 'cap2', 'cap3')
+
+ @classmethod
+ def required_capabilities(cls):
+ return ('cap2',)
+
+
class HandlerTestCase(TestCase):
def setUp(self):
- super(HandlerTestCase, self).setUp()
- self._handler = Handler(Backend(), None)
- self._handler.capabilities = lambda: ('cap1', 'cap2', 'cap3')
- self._handler.required_capabilities = lambda: ('cap2',)
+ self._handler = TestGenericHandler()
def assertSucceeds(self, func, *args, **kwargs):
try:
self.stateless_rpc = False
self.advertise_refs = False
- def capabilities(self):
+ @classmethod
+ def capabilities(cls):
return ('multi_ack',)