def test_comparison_on_different_unique_identifiers(self): """ Test that the equality/inequality operators return False/True when comparing two ModifyAttribute request payloads with different unique identifiers. """ a = payloads.ModifyAttributeRequestPayload(unique_identifier="1") b = payloads.ModifyAttributeRequestPayload(unique_identifier="2") self.assertFalse(a == b) self.assertFalse(b == a) self.assertTrue(a != b) self.assertTrue(b != a)
def test_read_kmip_2_0(self): """ Test that a ModifyAttribute request payload can be read from a buffer with KMIP 2.0 fields. """ payload = payloads.ModifyAttributeRequestPayload() self.assertIsNone(payload.unique_identifier) self.assertIsNone(payload.attribute) self.assertIsNone(payload.current_attribute) self.assertIsNone(payload.new_attribute) payload.read(self.full_encoding_kmip_2_0, kmip_version=enums.KMIPVersion.KMIP_2_0) self.assertEqual("b4faee10-aa2a-4446-8ad4-0881f3422959", payload.unique_identifier) self.assertIsNone(payload.attribute) self.assertEqual( objects.CurrentAttribute(attribute=primitives.Enumeration( enums.CryptographicAlgorithm, enums.CryptographicAlgorithm.AES, enums.Tags.CRYPTOGRAPHIC_ALGORITHM)), payload.current_attribute) self.assertEqual( objects.NewAttribute(attribute=primitives.Enumeration( enums.CryptographicAlgorithm, enums.CryptographicAlgorithm.RSA, enums.Tags.CRYPTOGRAPHIC_ALGORITHM)), payload.new_attribute)
def test_comparison(self): """ Test that the equality/inequality operators return True/False when comparing two ModifyAttribute request payloads with the same data. """ a = payloads.ModifyAttributeRequestPayload() b = payloads.ModifyAttributeRequestPayload() self.assertTrue(a == b) self.assertTrue(b == a) self.assertFalse(a != b) self.assertFalse(b != a) a = payloads.ModifyAttributeRequestPayload( unique_identifier="b4faee10-aa2a-4446-8ad4-0881f3422959", attribute=objects.Attribute( attribute_name=objects.Attribute.AttributeName("x-attribute1"), attribute_value=primitives.TextString( value="ModifiedValue1", tag=enums.Tags.ATTRIBUTE_VALUE)), current_attribute=objects.CurrentAttribute( attribute=primitives.Enumeration( enums.CryptographicAlgorithm, enums.CryptographicAlgorithm. AES, enums.Tags.CRYPTOGRAPHIC_ALGORITHM)), new_attribute=objects.NewAttribute( attribute=primitives.Enumeration( enums.CryptographicAlgorithm, enums.CryptographicAlgorithm. RSA, enums.Tags.CRYPTOGRAPHIC_ALGORITHM))) b = payloads.ModifyAttributeRequestPayload( unique_identifier="b4faee10-aa2a-4446-8ad4-0881f3422959", attribute=objects.Attribute( attribute_name=objects.Attribute.AttributeName("x-attribute1"), attribute_value=primitives.TextString( value="ModifiedValue1", tag=enums.Tags.ATTRIBUTE_VALUE)), current_attribute=objects.CurrentAttribute( attribute=primitives.Enumeration( enums.CryptographicAlgorithm, enums.CryptographicAlgorithm. AES, enums.Tags.CRYPTOGRAPHIC_ALGORITHM)), new_attribute=objects.NewAttribute( attribute=primitives.Enumeration( enums.CryptographicAlgorithm, enums.CryptographicAlgorithm. RSA, enums.Tags.CRYPTOGRAPHIC_ALGORITHM))) self.assertTrue(a == b) self.assertTrue(b == a) self.assertFalse(a != b) self.assertFalse(b != a)
def test_comparison_on_different_new_attributes(self): """ Test that the equality/inequality operators return False/True when comparing two ModifyAttribute request payloads with different new attributes. """ a = payloads.ModifyAttributeRequestPayload( new_attribute=objects.NewAttribute( attribute=primitives.Enumeration( enums.CryptographicAlgorithm, enums.CryptographicAlgorithm. AES, enums.Tags.CRYPTOGRAPHIC_ALGORITHM))) b = payloads.ModifyAttributeRequestPayload( new_attribute=objects.NewAttribute(attribute=primitives.Integer( 128, enums.Tags.CRYPTOGRAPHIC_LENGTH))) self.assertFalse(a == b) self.assertFalse(b == a) self.assertTrue(a != b) self.assertTrue(b != a)
def test_comparison_on_different_attributes(self): """ Test that the equality/inequality operators return False/True when comparing two ModifyAttribute request payloads with different attributes. """ a = payloads.ModifyAttributeRequestPayload(attribute=objects.Attribute( attribute_name=objects.Attribute.AttributeName("x-attribute1"), attribute_value=primitives.TextString( value="ModifiedValue1", tag=enums.Tags.ATTRIBUTE_VALUE))) b = payloads.ModifyAttributeRequestPayload(attribute=objects.Attribute( attribute_name=objects.Attribute.AttributeName("x-attribute2"), attribute_value=primitives.TextString( value="ModifiedValue2", tag=enums.Tags.ATTRIBUTE_VALUE))) self.assertFalse(a == b) self.assertFalse(b == a) self.assertTrue(a != b) self.assertTrue(b != a)
def test_write_no_attribute(self): """ Test that an InvalidField error is raised when attempting to write a ModifyAttribute request payload to a buffer with no attribute field specified. """ payload = payloads.ModifyAttributeRequestPayload() args = (utils.BytearrayStream(), ) self.assertRaisesRegex( exceptions.InvalidField, "The ModifyAttribute request payload is missing the attribute " "field.", payload.write, *args)
def test_read_no_attribute(self): """ Test that an InvalidKmipEncoding error is raised when an invalid encoding containing no encoded attribute is used to decode a ModifyAttribute request payload. """ payload = payloads.ModifyAttributeRequestPayload() args = (self.empty_encoding, ) self.assertRaisesRegex( exceptions.InvalidKmipEncoding, "The ModifyAttribute request payload encoding is missing the " "attribute field.", payload.read, *args)
def test_comparison_on_type_mismatch(self): """ Test that the equality/inequality operators return False/True when comparining a ModifyAttribute request payload against a different type. """ a = payloads.ModifyAttributeRequestPayload() b = "invalid" self.assertFalse(a == b) self.assertFalse(b == a) self.assertTrue(a != b) self.assertTrue(b != a)
def test_str(self): """ Test that str can be applied to a ModifyAttribute request payload. """ payload = payloads.ModifyAttributeRequestPayload( unique_identifier="b4faee10-aa2a-4446-8ad4-0881f3422959") s = str({ "unique_identifier": "b4faee10-aa2a-4446-8ad4-0881f3422959", "attribute": None, "current_attribute": None, "new_attribute": None }) self.assertEqual(s, str(payload))
def test_read_no_new_attribute(self): """ Test that an InvalidKmipEncoding error is raised when an invalid encoding containing no encoded new attribute is used to decode a ModifyAttribute request payload. """ payload = payloads.ModifyAttributeRequestPayload() args = (self.empty_encoding, ) kwargs = {"kmip_version": enums.KMIPVersion.KMIP_2_0} self.assertRaisesRegex( exceptions.InvalidKmipEncoding, "The ModifyAttribute request payload encoding is missing the " "new attribute field.", payload.read, *args, **kwargs)
def test_write_no_new_attribute(self): """ Test that an InvalidField error is raised when attempting to write a ModifyAttribute request payload to a buffer with no new attribute field specified. """ payload = payloads.ModifyAttributeRequestPayload() args = (utils.BytearrayStream(), ) kwargs = {"kmip_version": enums.KMIPVersion.KMIP_2_0} self.assertRaisesRegex( exceptions.InvalidField, "The ModifyAttribute request payload is missing the new attribute " "field.", payload.write, *args, **kwargs)
def test_repr(self): """ Test that repr can be applied to a ModifyAttribute request payload. """ payload = payloads.ModifyAttributeRequestPayload( unique_identifier="b4faee10-aa2a-4446-8ad4-0881f3422959") args = [ "unique_identifier='b4faee10-aa2a-4446-8ad4-0881f3422959'", "attribute=None", "current_attribute=None", "new_attribute=None" ] self.assertEqual( "ModifyAttributeRequestPayload({})".format(", ".join(args)), repr(payload))
def test_invalid_new_attribute(self): """ Test that a TypeError is raised when an invalid value is used to set the new attribute of a ModifyAttribute request payload. """ kwargs = {"new_attribute": "invalid"} self.assertRaisesRegex( TypeError, "The new attribute must be a NewAttribute object.", payloads.ModifyAttributeRequestPayload, **kwargs) args = (payloads.ModifyAttributeRequestPayload(), "new_attribute", "invalid") self.assertRaisesRegex( TypeError, "The new attribute must be a NewAttribute object.", setattr, *args)
def test_write(self): """ Test that a ModifyAttribute request payload can be written to a buffer. """ payload = payloads.ModifyAttributeRequestPayload( unique_identifier="b4faee10-aa2a-4446-8ad4-0881f3422959", attribute=objects.Attribute( attribute_name=objects.Attribute.AttributeName("x-attribute1"), attribute_value=primitives.TextString( value="ModifiedValue1", tag=enums.Tags.ATTRIBUTE_VALUE))) buffer = utils.BytearrayStream() payload.write(buffer) self.assertEqual(len(self.full_encoding), len(buffer)) self.assertEqual(str(self.full_encoding), str(buffer))
def test_invalid_unique_identifier(self): """ Test that a TypeError is raised when an invalid value is used to set the unique identifier of a ModifyAttribute request payload. """ kwargs = {"unique_identifier": 0} self.assertRaisesRegex(TypeError, "The unique identifier must be a string.", payloads.ModifyAttributeRequestPayload, **kwargs) args = (payloads.ModifyAttributeRequestPayload(), "unique_identifier", 0) self.assertRaisesRegex(TypeError, "The unique identifier must be a string.", setattr, *args)
def test_write_kmip_2_0(self): """ Test that a ModifyAttribute request payload can be written to a buffer with KMIP 2.0 fields. """ payload = payloads.ModifyAttributeRequestPayload( unique_identifier="b4faee10-aa2a-4446-8ad4-0881f3422959", current_attribute=objects.CurrentAttribute( attribute=primitives.Enumeration( enums.CryptographicAlgorithm, enums.CryptographicAlgorithm. AES, enums.Tags.CRYPTOGRAPHIC_ALGORITHM)), new_attribute=objects.NewAttribute( attribute=primitives.Enumeration( enums.CryptographicAlgorithm, enums.CryptographicAlgorithm. RSA, enums.Tags.CRYPTOGRAPHIC_ALGORITHM))) buffer = utils.BytearrayStream() payload.write(buffer, kmip_version=enums.KMIPVersion.KMIP_2_0) self.assertEqual(len(self.full_encoding_kmip_2_0), len(buffer)) self.assertEqual(str(self.full_encoding_kmip_2_0), str(buffer))
def test_read(self): """ Test that a ModifyAttribute request payload can be read from a buffer. """ payload = payloads.ModifyAttributeRequestPayload() self.assertIsNone(payload.unique_identifier) self.assertIsNone(payload.attribute) self.assertIsNone(payload.current_attribute) self.assertIsNone(payload.new_attribute) payload.read(self.full_encoding) self.assertEqual("b4faee10-aa2a-4446-8ad4-0881f3422959", payload.unique_identifier) self.assertEqual( objects.Attribute( attribute_name=objects.Attribute.AttributeName("x-attribute1"), attribute_value=primitives.TextString( value="ModifiedValue1", tag=enums.Tags.ATTRIBUTE_VALUE)), payload.attribute) self.assertIsNone(payload.current_attribute) self.assertIsNone(payload.new_attribute)
def _create_modify_attribute_payload(self): return payloads.ModifyAttributeRequestPayload()