diff options
| author | Tyler Lubeck <tyler@tylerlubeck.com> | 2019-12-29 15:51:41 -0800 |
|---|---|---|
| committer | Dana Powers <dana.powers@gmail.com> | 2019-12-29 15:51:41 -0800 |
| commit | bc25877a6bf4d579508b1ee9df3ca7870757f029 (patch) | |
| tree | 1f7b8f24bf81b57a9af5c4b41cf99d3eb18aae14 /test | |
| parent | 5c477f2642a4d0b6bcb4010447a5e113fedf3e7f (diff) | |
| download | kafka-python-bc25877a6bf4d579508b1ee9df3ca7870757f029.tar.gz | |
Implement __eq__ and __hash__ for ACL objects (#1955)
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_acl_comparisons.py | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/test/test_acl_comparisons.py b/test/test_acl_comparisons.py new file mode 100644 index 0000000..291bf0e --- /dev/null +++ b/test/test_acl_comparisons.py @@ -0,0 +1,92 @@ +from kafka.admin.acl_resource import ACL +from kafka.admin.acl_resource import ACLOperation +from kafka.admin.acl_resource import ACLPermissionType +from kafka.admin.acl_resource import ResourcePattern +from kafka.admin.acl_resource import ResourceType +from kafka.admin.acl_resource import ACLResourcePatternType + + +def test_different_acls_are_different(): + one = ACL( + principal='User:A', + host='*', + operation=ACLOperation.ALL, + permission_type=ACLPermissionType.ALLOW, + resource_pattern=ResourcePattern( + resource_type=ResourceType.TOPIC, + resource_name='some-topic', + pattern_type=ACLResourcePatternType.LITERAL + ) + ) + + two = ACL( + principal='User:B', # Different principal + host='*', + operation=ACLOperation.ALL, + permission_type=ACLPermissionType.ALLOW, + resource_pattern=ResourcePattern( + resource_type=ResourceType.TOPIC, + resource_name='some-topic', + pattern_type=ACLResourcePatternType.LITERAL + ) + ) + + assert one != two + assert hash(one) != hash(two) + +def test_different_acls_are_different_with_glob_topics(): + one = ACL( + principal='User:A', + host='*', + operation=ACLOperation.ALL, + permission_type=ACLPermissionType.ALLOW, + resource_pattern=ResourcePattern( + resource_type=ResourceType.TOPIC, + resource_name='*', + pattern_type=ACLResourcePatternType.LITERAL + ) + ) + + two = ACL( + principal='User:B', # Different principal + host='*', + operation=ACLOperation.ALL, + permission_type=ACLPermissionType.ALLOW, + resource_pattern=ResourcePattern( + resource_type=ResourceType.TOPIC, + resource_name='*', + pattern_type=ACLResourcePatternType.LITERAL + ) + ) + + assert one != two + assert hash(one) != hash(two) + +def test_same_acls_are_same(): + one = ACL( + principal='User:A', + host='*', + operation=ACLOperation.ALL, + permission_type=ACLPermissionType.ALLOW, + resource_pattern=ResourcePattern( + resource_type=ResourceType.TOPIC, + resource_name='some-topic', + pattern_type=ACLResourcePatternType.LITERAL + ) + ) + + two = ACL( + principal='User:A', + host='*', + operation=ACLOperation.ALL, + permission_type=ACLPermissionType.ALLOW, + resource_pattern=ResourcePattern( + resource_type=ResourceType.TOPIC, + resource_name='some-topic', + pattern_type=ACLResourcePatternType.LITERAL + ) + ) + + assert one == two + assert hash(one) == hash(two) + assert len(set((one, two))) == 1 |
