diff --git a/kmip/core/attributes.py b/kmip/core/attributes.py index 54f9066..0eaea6e 100644 --- a/kmip/core/attributes.py +++ b/kmip/core/attributes.py @@ -620,6 +620,12 @@ class CryptographicUsageMask(Integer): value, Tags.CRYPTOGRAPHIC_USAGE_MASK) +class State(Enumeration): + + def __init__(self, value=None): + super(State, self).__init__(enums.State, value, Tags.STATE) + + # 3.33 class ObjectGroup(TextString): diff --git a/kmip/core/factories/attribute_values.py b/kmip/core/factories/attribute_values.py index d066b17..d9c750f 100644 --- a/kmip/core/factories/attribute_values.py +++ b/kmip/core/factories/attribute_values.py @@ -66,7 +66,7 @@ class AttributeValueFactory(object): elif name is enums.AttributeType.USAGE_LIMITS: raise NotImplementedError() elif name is enums.AttributeType.STATE: - raise NotImplementedError() + return attributes.State(value) elif name is enums.AttributeType.INITIAL_DATE: return primitives.DateTime(value, enums.Tags.INITIAL_DATE) elif name is enums.AttributeType.ACTIVATION_DATE: diff --git a/kmip/tests/unit/core/factories/test_attribute_values.py b/kmip/tests/unit/core/factories/test_attribute_values.py index 2d6159a..fa92f73 100644 --- a/kmip/tests/unit/core/factories/test_attribute_values.py +++ b/kmip/tests/unit/core/factories/test_attribute_values.py @@ -228,10 +228,12 @@ class TestAttributeValueFactory(testtools.TestCase): """ Test that a State attribute can be created. """ - kwargs = {'name': enums.AttributeType.STATE, - 'value': None} - self.assertRaises( - NotImplementedError, self.factory.create_attribute_value, **kwargs) + state = self.factory.create_attribute_value( + enums.AttributeType.STATE, + enums.State.ACTIVE + ) + self.assertIsInstance(state, attributes.State) + self.assertEqual(enums.State.ACTIVE, state.value) def test_create_initial_date(self): """