blob: e8e97022840b8b0d6bb4ec8f15fa162be8468937 [file] [log] [blame]
Alex Gaynor87112402014-10-21 10:56:33 -07001import abc
2
3import pytest
4
5import six
6
7from cryptography.utils import (
8 InterfaceNotImplemented, register_interface, verify_interface
9)
10
11
12class TestVerifyInterface(object):
13 def test_verify_missing_method(self):
14 @six.add_metaclass(abc.ABCMeta)
15 class SimpleInterface(object):
16 @abc.abstractmethod
17 def method(self):
18 pass
19
20 @register_interface(SimpleInterface)
21 class NonImplementer(object):
22 pass
23
24 with pytest.raises(InterfaceNotImplemented):
25 verify_interface(SimpleInterface, NonImplementer)
26
27 def test_different_arguments(self):
28 @six.add_metaclass(abc.ABCMeta)
29 class SimpleInterface(object):
30 @abc.abstractmethod
31 def method(self, a):
32 pass
33
34 @register_interface(SimpleInterface)
35 class NonImplementer(object):
36 def method(self):
37 pass
38
39 with pytest.raises(InterfaceNotImplemented):
40 verify_interface(SimpleInterface, NonImplementer)