1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from pydnspp import *
- class MockTSIGContext(TSIGContext):
- """Tthis is a mock of TSIGContext class for testing.
- Via its "error" attribute, you can fake the result of verify(), thereby
- you can test many of TSIG related tests without requiring actual crypto
- setups. "error" should be either a TSIGError type value or a callable
- object (typically a function). In the latter case, the callable object
- will take the context as a parameter, and is expected to return a
- TSIGError object.
- """
- def __init__(self, tsig_key):
- super().__init__(tsig_key)
- self.error = None
- self.verify_called = 0
- def sign(self, qid, data):
- """Transparently delegate the processing to the super class.
- It doesn't matter much anyway because normal applications that would
- be implemented in Python normally won't call TSIGContext.sign()
- directly.
- """
- return super().sign(qid, data)
- def verify(self, tsig_record, data):
- self.verify_called += 1
-
-
- super().verify(tsig_record, data)
- return self.get_error()
- def get_error(self):
- if self.error is None:
- return super().get_error()
- if hasattr(self.error, '__call__'):
- return self.error(self)
- return self.error
|