mirror of
https://github.com/OpenKMIP/PyKMIP.git
synced 2025-07-21 21:14:24 +02:00
Merge pull request #212 from OpenKMIP/feat/update-app-specific-info
Updating the ApplicationSpecificInformation attribute
This commit is contained in:
commit
a97c9eb5ed
@ -757,6 +757,40 @@ class ApplicationSpecificInformation(Struct):
|
|||||||
"""
|
"""
|
||||||
self.__validate()
|
self.__validate()
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
application_namespace = "application_namespace={0}".format(
|
||||||
|
repr(self.application_namespace)
|
||||||
|
)
|
||||||
|
application_data = "application_data={0}".format(
|
||||||
|
repr(self.application_data)
|
||||||
|
)
|
||||||
|
return "ApplicationSpecificInformation({0}, {1})".format(
|
||||||
|
application_namespace,
|
||||||
|
application_data
|
||||||
|
)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return str({
|
||||||
|
"application_namespace": str(self.application_namespace),
|
||||||
|
"application_data": str(self.application_data)
|
||||||
|
})
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
if isinstance(other, ApplicationSpecificInformation):
|
||||||
|
if self.application_namespace != other.application_namespace:
|
||||||
|
return False
|
||||||
|
if self.application_data != other.application_data:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return NotImplemented
|
||||||
|
|
||||||
|
def __ne__(self, other):
|
||||||
|
if isinstance(other, ApplicationSpecificInformation):
|
||||||
|
return not self.__eq__(other)
|
||||||
|
else:
|
||||||
|
return NotImplemented
|
||||||
|
|
||||||
def __validate(self):
|
def __validate(self):
|
||||||
if not isinstance(self.application_namespace, ApplicationNamespace):
|
if not isinstance(self.application_namespace, ApplicationNamespace):
|
||||||
msg = "invalid application namespace"
|
msg = "invalid application namespace"
|
||||||
|
@ -839,7 +839,7 @@ class TextString(Base):
|
|||||||
return "{0}(value={1})".format(type(self).__name__, repr(self.value))
|
return "{0}(value={1})".format(type(self).__name__, repr(self.value))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "{0}".format(repr(self.value))
|
return "{0}".format(str(self.value))
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
if isinstance(other, TextString):
|
if isinstance(other, TextString):
|
||||||
|
@ -188,6 +188,175 @@ class TestApplicationSpecificInformation(TestCase):
|
|||||||
self._test_write(self.encoding, application_namespace,
|
self._test_write(self.encoding, application_namespace,
|
||||||
application_data)
|
application_data)
|
||||||
|
|
||||||
|
def test_repr(self):
|
||||||
|
"""
|
||||||
|
Test that an ApplicationSpecificInformation object can be represented
|
||||||
|
using repr correctly.
|
||||||
|
"""
|
||||||
|
application_specific_info = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace("ssl"),
|
||||||
|
application_data=ApplicationData("www.example.com")
|
||||||
|
)
|
||||||
|
s = repr(application_specific_info)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
"ApplicationSpecificInformation("
|
||||||
|
"application_namespace=ApplicationNamespace(value='ssl'), "
|
||||||
|
"application_data=ApplicationData(value='www.example.com'))",
|
||||||
|
s
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_str(self):
|
||||||
|
"""
|
||||||
|
Test that an ApplicationSpecificInformation object can be turned into
|
||||||
|
a string correctly.
|
||||||
|
"""
|
||||||
|
application_specific_info = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace("ssl"),
|
||||||
|
application_data=ApplicationData("www.example.com")
|
||||||
|
)
|
||||||
|
s = str(application_specific_info)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
str({'application_namespace': 'ssl',
|
||||||
|
'application_data': 'www.example.com'}
|
||||||
|
),
|
||||||
|
s
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_equal_on_equal(self):
|
||||||
|
"""
|
||||||
|
Test that the equality operator returns True when comparing two
|
||||||
|
ApplicationSpecificInformation objects with the same data.
|
||||||
|
"""
|
||||||
|
a = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
b = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(a == b)
|
||||||
|
self.assertTrue(b == a)
|
||||||
|
|
||||||
|
def test_equal_on_not_equal_namespace(self):
|
||||||
|
"""
|
||||||
|
Test that the equality operator returns False when comparing two
|
||||||
|
ApplicationSpecificInformation objects with different data.
|
||||||
|
"""
|
||||||
|
a = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace_1'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
b = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace_2'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertFalse(a == b)
|
||||||
|
self.assertFalse(b == a)
|
||||||
|
|
||||||
|
def test_equal_on_not_equal_data(self):
|
||||||
|
"""
|
||||||
|
Test that the equality operator returns False when comparing two
|
||||||
|
ApplicationSpecificInformation objects with different data.
|
||||||
|
"""
|
||||||
|
a = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data_1')
|
||||||
|
)
|
||||||
|
b = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data_2')
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertFalse(a == b)
|
||||||
|
self.assertFalse(b == a)
|
||||||
|
|
||||||
|
def test_equal_on_type_mismatch(self):
|
||||||
|
"""
|
||||||
|
Test that the equality operator returns False when comparing a
|
||||||
|
ApplicationSpecificInformation object to a
|
||||||
|
non-ApplicationSpecificInformation object.
|
||||||
|
"""
|
||||||
|
a = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
b = "invalid"
|
||||||
|
|
||||||
|
self.assertFalse(a == b)
|
||||||
|
self.assertFalse(b == a)
|
||||||
|
|
||||||
|
def test_not_equal_on_equal(self):
|
||||||
|
"""
|
||||||
|
Test that the inequality operator returns False when comparing
|
||||||
|
two ApplicationSpecificInformation objects with the same internal
|
||||||
|
data.
|
||||||
|
"""
|
||||||
|
a = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
b = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertFalse(a != b)
|
||||||
|
self.assertFalse(b != a)
|
||||||
|
|
||||||
|
def test_not_equal_on_not_equal_namespace(self):
|
||||||
|
"""
|
||||||
|
Test that the inequality operator returns True when comparing two
|
||||||
|
ApplicationSpecificInformation objects with different data.
|
||||||
|
"""
|
||||||
|
a = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace_1'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
b = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace_2'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(a != b)
|
||||||
|
self.assertTrue(b != a)
|
||||||
|
|
||||||
|
def test_not_equal_on_not_equal_data(self):
|
||||||
|
"""
|
||||||
|
Test that the inequality operator returns True when comparing two
|
||||||
|
ApplicationSpecificInformation objects with different data.
|
||||||
|
"""
|
||||||
|
a = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data_1')
|
||||||
|
)
|
||||||
|
b = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data_2')
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(a != b)
|
||||||
|
self.assertTrue(b != a)
|
||||||
|
|
||||||
|
def test_not_equal_on_type_mismatch(self):
|
||||||
|
"""
|
||||||
|
Test that the equality operator returns True when comparing a
|
||||||
|
ApplicationSpecificInformation object to a
|
||||||
|
non-ApplicationSpecificInformation object.
|
||||||
|
"""
|
||||||
|
a = ApplicationSpecificInformation(
|
||||||
|
application_namespace=ApplicationNamespace('test_namespace'),
|
||||||
|
application_data=ApplicationData('test_data')
|
||||||
|
)
|
||||||
|
b = "invalid"
|
||||||
|
|
||||||
|
self.assertTrue(a != b)
|
||||||
|
self.assertTrue(b != a)
|
||||||
|
|
||||||
def _test_create(self, application_namespace, application_data):
|
def _test_create(self, application_namespace, application_data):
|
||||||
application_specific_info = ApplicationSpecificInformation.create(
|
application_specific_info = ApplicationSpecificInformation.create(
|
||||||
application_namespace, application_data)
|
application_namespace, application_data)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user