mirror of https://github.com/OpenKMIP/PyKMIP.git
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()
|
||||
|
||||
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):
|
||||
if not isinstance(self.application_namespace, ApplicationNamespace):
|
||||
msg = "invalid application namespace"
|
||||
|
|
|
@ -839,7 +839,7 @@ class TextString(Base):
|
|||
return "{0}(value={1})".format(type(self).__name__, repr(self.value))
|
||||
|
||||
def __str__(self):
|
||||
return "{0}".format(repr(self.value))
|
||||
return "{0}".format(str(self.value))
|
||||
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, TextString):
|
||||
|
|
|
@ -188,6 +188,175 @@ class TestApplicationSpecificInformation(TestCase):
|
|||
self._test_write(self.encoding, application_namespace,
|
||||
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):
|
||||
application_specific_info = ApplicationSpecificInformation.create(
|
||||
application_namespace, application_data)
|
||||
|
|
Loading…
Reference in New Issue