Merge pull request #213 from OpenKMIP/feat/update-attribute

Adding string utilites to the Attribute object
This commit is contained in:
Peter Hamilton 2016-11-27 12:30:34 -05:00 committed by GitHub
commit ccf5c41e79
2 changed files with 135 additions and 1 deletions

View File

@ -129,6 +129,27 @@ class Attribute(Struct):
super(Attribute, self).write(ostream)
ostream.write(tstream.buffer)
def __repr__(self):
attribute_name = "attribute_name={0}".format(repr(self.attribute_name))
attribute_index = "attribute_index={0}".format(
repr(self.attribute_index)
)
attribute_value = "attribute_value={0}".format(
repr(self.attribute_value)
)
return "Attribute({0}, {1}, {2})".format(
attribute_name,
attribute_index,
attribute_value
)
def __str__(self):
return str({
'attribute_name': str(self.attribute_name),
'attribute_index': str(self.attribute_index),
'attribute_value': str(self.attribute_value)
})
def __eq__(self, other):
if isinstance(other, Attribute):
if self.attribute_name != other.attribute_name:
@ -143,7 +164,10 @@ class Attribute(Struct):
return NotImplemented
def __ne__(self, other):
return not self.__eq__(other)
if isinstance(other, Attribute):
return not self.__eq__(other)
else:
return NotImplemented
# 2.1.2

View File

@ -0,0 +1,110 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import testtools
from kmip.core import attributes
from kmip.core import objects
class TestAttribute(testtools.TestCase):
"""
Test suite for the Attribute object.
"""
def setUp(self):
super(TestAttribute, self).setUp()
def tearDown(self):
super(TestAttribute, self).tearDown()
def test_init(self):
"""
Test that an Attribute object can be created.
"""
objects.Attribute()
def test_init_with_args(self):
self.skip('')
def test_read(self):
self.skip('')
def test_write(self):
self.skip('')
def test_repr(self):
"""
Test that repr can be applied to an Attribute object.
"""
attribute = objects.Attribute(
attribute_name=objects.Attribute.AttributeName('test-name'),
attribute_index=objects.Attribute.AttributeIndex(0),
attribute_value=attributes.CustomAttribute('test-value')
)
self.assertEqual(
"Attribute("
"attribute_name=AttributeName(value='test-name'), "
"attribute_index=AttributeIndex(value=0), "
"attribute_value=CustomAttribute(value='test-value'))",
repr(attribute)
)
def test_str(self):
"""
Test that str can be applied to an Attribute object.
"""
attribute = objects.Attribute(
attribute_name=objects.Attribute.AttributeName('test-name'),
attribute_index=objects.Attribute.AttributeIndex(0),
attribute_value=attributes.CustomAttribute('test-value')
)
self.assertEqual(
str({
'attribute_name': 'test-name',
'attribute_index': '0',
'attribute_value': 'test-value'
}),
str(attribute)
)
def test_equal_on_equal(self):
self.skip('')
def test_equal_on_not_equal_name(self):
self.skip('')
def test_equal_on_not_equal_index(self):
self.skip('')
def test_equal_on_not_equal_value(self):
self.skip('')
def test_equal_on_type_mismatch(self):
self.skip('')
def test_not_equal_on_equal(self):
self.skip('')
def test_not_equal_on_not_equal_name(self):
self.skip('')
def test_not_equal_on_not_equal_index(self):
self.skip('')
def test_not_equal_on_not_equal_value(self):
self.skip('')
def test_not_equal_on_type_mismatch(self):
self.skip('')