def test_not_equal_on_equal_and_empty(self): """ Test that the inequality operator returns False when comparing two ServerInformation objects with no internal data. """ a = ServerInformation() b = ServerInformation() self.assertFalse(a != b) self.assertFalse(b != a)
def test_equal_on_equal_and_empty(self): """ Test that the equality operator returns True when comparing two ServerInformation objects with no internal data. """ a = ServerInformation() b = ServerInformation() self.assertTrue(a == b) self.assertTrue(b == a)
def test_not_equal_on_not_equal(self): """ Test that the inequality operator returns True when comparing two ServerInformation objects with different sets of internal data. """ a = ServerInformation() b = ServerInformation() a.data = self.data self.assertTrue(a != b) self.assertTrue(b != a)
def test_equal_on_equal(self): """ Test that the equality operator returns True when comparing two ServerInformation objects with the same internal data. """ a = ServerInformation() b = ServerInformation() a.data = self.data b.data = self.data self.assertTrue(a == b) self.assertTrue(b == a)
def test_process_query_batch_item_with_results(self): self._test_process_query_batch_item( list(), list(), VendorIdentification(), ServerInformation(), list(), list())
def test_not_equal_on_type_mismatch(self): """ Test that the inequality operator returns True when comparing a ServerInformation object to a non-ServerInformation object. """ a = ServerInformation() b = "invalid" self.assertTrue(a != b)
def _test_read(self, stream, data): server_information = ServerInformation() server_information.read(stream) expected = data observed = server_information.data msg = "data decoding mismatch" msg += "; expected {0}, observed {1}".format(expected, observed) self.assertEqual(expected, observed, msg)
def read(self, istream, kmip_version=enums.KMIPVersion.KMIP_1_0): """ Read the data encoding the QueryResponsePayload object and decode it into its constituent parts. Args: istream (Stream): A data stream containing encoded object data, supporting a read method; usually a BytearrayStream object. kmip_version (KMIPVersion): An enumeration defining the KMIP version with which the object will be decoded. Optional, defaults to KMIP 1.0. """ super(QueryResponsePayload, self).read(istream, kmip_version=kmip_version) tstream = BytearrayStream(istream.read(self.length)) while (self.is_tag_next(enums.Tags.OPERATION, tstream)): operation = Operation() operation.read(tstream, kmip_version=kmip_version) self.operations.append(operation) while (self.is_tag_next(enums.Tags.OBJECT_TYPE, tstream)): object_type = ObjectType() object_type.read(tstream, kmip_version=kmip_version) self.object_types.append(object_type) if self.is_tag_next(enums.Tags.VENDOR_IDENTIFICATION, tstream): self.vendor_identification = VendorIdentification() self.vendor_identification.read(tstream, kmip_version=kmip_version) if self.is_tag_next(enums.Tags.SERVER_INFORMATION, tstream): self.server_information = ServerInformation() self.server_information.read(tstream, kmip_version=kmip_version) while (self.is_tag_next(enums.Tags.APPLICATION_NAMESPACE, tstream)): application_namespace = ApplicationNamespace() application_namespace.read(tstream, kmip_version=kmip_version) self.application_namespaces.append(application_namespace) while (self.is_tag_next(enums.Tags.EXTENSION_INFORMATION, tstream)): extension_information = ExtensionInformation() extension_information.read(tstream, kmip_version=kmip_version) self.extension_information.append(extension_information) self.is_oversized(tstream) self.validate()
def _test_str(self, data): server_information = ServerInformation() server_information.data = data str_repr = str(server_information) expected = len(str(data)) observed = len(str_repr) msg = "expected {0}, observed {1}".format(expected, observed) self.assertEqual(expected, observed, msg) # TODO (peter-hamilton) This should be binary_type. Fix involves # TODO (peter-hamilton) refining BytearrayStream implementation. expected = string_types observed = str_repr msg = "expected {0}, observed {1}".format(expected, observed) self.assertIsInstance(observed, expected, msg)
def test_repr(self): """ Test that the representation of a ServerInformation object is formatted properly and can be used by eval to create a new ServerInformation object. """ server_information = ServerInformation() expected = "ServerInformation()" observed = repr(server_information) msg = "expected {0}, observed {1}".format(expected, observed) self.assertEqual(expected, observed, msg) expected = server_information observed = eval(observed) msg = "expected {0}, observed {1}".format(expected, observed) self.assertEqual(expected, observed, msg)
def _test_write(self, stream_expected, data): stream_observed = BytearrayStream() server_information = ServerInformation() if data is not None: server_information.data = data server_information.write(stream_observed) length_expected = len(stream_expected) length_observed = len(stream_observed) msg = "encoding lengths not equal" msg += "; expected {0}, observed {1}".format(length_expected, length_observed) self.assertEqual(length_expected, length_observed, msg) msg = "encoding mismatch" msg += ";\nexpected:\n{0}\nobserved:\n{1}".format( stream_expected, stream_observed) self.assertEqual(stream_expected, stream_observed, msg)
def setUp(self): super(TestQueryResponsePayload, self).setUp() self.operations = list() self.object_types = list() self.application_namespaces = list() self.extension_information = list() self.vendor_identification = VendorIdentification( "IBM test server, not-TKLM 2.0.1.1 KMIP 2.0.0.1") self.server_information = ServerInformation() self.operations.append(Operation(OperationEnum.CREATE)) self.operations.append(Operation(OperationEnum.CREATE_KEY_PAIR)) self.operations.append(Operation(OperationEnum.REGISTER)) self.operations.append(Operation(OperationEnum.REKEY)) self.operations.append(Operation(OperationEnum.CERTIFY)) self.operations.append(Operation(OperationEnum.RECERTIFY)) self.operations.append(Operation(OperationEnum.LOCATE)) self.operations.append(Operation(OperationEnum.CHECK)) self.operations.append(Operation(OperationEnum.GET)) self.operations.append(Operation(OperationEnum.GET_ATTRIBUTES)) self.operations.append(Operation(OperationEnum.GET_ATTRIBUTE_LIST)) self.operations.append(Operation(OperationEnum.ADD_ATTRIBUTE)) self.operations.append(Operation(OperationEnum.MODIFY_ATTRIBUTE)) self.operations.append(Operation(OperationEnum.DELETE_ATTRIBUTE)) self.operations.append(Operation(OperationEnum.OBTAIN_LEASE)) self.operations.append(Operation(OperationEnum.GET_USAGE_ALLOCATION)) self.operations.append(Operation(OperationEnum.ACTIVATE)) self.operations.append(Operation(OperationEnum.REVOKE)) self.operations.append(Operation(OperationEnum.DESTROY)) self.operations.append(Operation(OperationEnum.ARCHIVE)) self.operations.append(Operation(OperationEnum.RECOVER)) self.operations.append(Operation(OperationEnum.QUERY)) self.operations.append(Operation(OperationEnum.CANCEL)) self.operations.append(Operation(OperationEnum.POLL)) self.operations.append(Operation(OperationEnum.REKEY_KEY_PAIR)) self.operations.append(Operation(OperationEnum.DISCOVER_VERSIONS)) self.object_types.append(ObjectType(ObjectTypeEnum.CERTIFICATE)) self.object_types.append(ObjectType(ObjectTypeEnum.SYMMETRIC_KEY)) self.object_types.append(ObjectType(ObjectTypeEnum.PUBLIC_KEY)) self.object_types.append(ObjectType(ObjectTypeEnum.PRIVATE_KEY)) self.object_types.append(ObjectType(ObjectTypeEnum.TEMPLATE)) self.object_types.append(ObjectType(ObjectTypeEnum.SECRET_DATA)) self.extension_information.append( ExtensionInformation( extension_name=ExtensionName("ACME LOCATION"))) self.extension_information.append( ExtensionInformation( extension_name=ExtensionName("ACME ZIP CODE"))) self.encoding_a = utils.BytearrayStream( (b'\x42\x00\x7C\x01\x00\x00\x00\x00')) self.encoding_b = utils.BytearrayStream(( b'\x42\x00\x7C\x01\x00\x00\x02\x40\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x01\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x02\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x03\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x04\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x06\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x07\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x08\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x09\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x0A\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x0B\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x0C\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x0D\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x0E\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x0F\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x10\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x11\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x12\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x13\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x14\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x15\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x16\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x18\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x19\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x1A\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x1D\x00\x00\x00\x00\x42\x00\x5C\x05\x00\x00\x00\x04' b'\x00\x00\x00\x1E\x00\x00\x00\x00\x42\x00\x57\x05\x00\x00\x00\x04' b'\x00\x00\x00\x01\x00\x00\x00\x00\x42\x00\x57\x05\x00\x00\x00\x04' b'\x00\x00\x00\x02\x00\x00\x00\x00\x42\x00\x57\x05\x00\x00\x00\x04' b'\x00\x00\x00\x03\x00\x00\x00\x00\x42\x00\x57\x05\x00\x00\x00\x04' b'\x00\x00\x00\x04\x00\x00\x00\x00\x42\x00\x57\x05\x00\x00\x00\x04' b'\x00\x00\x00\x06\x00\x00\x00\x00\x42\x00\x57\x05\x00\x00\x00\x04' b'\x00\x00\x00\x07\x00\x00\x00\x00\x42\x00\x9D\x07\x00\x00\x00\x2E' b'\x49\x42\x4D\x20\x74\x65\x73\x74\x20\x73\x65\x72\x76\x65\x72\x2C' b'\x20\x6E\x6F\x74\x2D\x54\x4B\x4C\x4D\x20\x32\x2E\x30\x2E\x31\x2E' b'\x31\x20\x4B\x4D\x49\x50\x20\x32\x2E\x30\x2E\x30\x2E\x31\x00\x00' b'\x42\x00\x88\x01\x00\x00\x00\x00')) self.encoding_c = utils.BytearrayStream(( b'\x42\x00\x7C\x01\x00\x00\x00\x40\x42\x00\xA4\x01\x00\x00\x00\x18' b'\x42\x00\xA5\x07\x00\x00\x00\x0D\x41\x43\x4D\x45\x20\x4C\x4F\x43' b'\x41\x54\x49\x4F\x4E\x00\x00\x00\x42\x00\xA4\x01\x00\x00\x00\x18' b'\x42\x00\xA5\x07\x00\x00\x00\x0D\x41\x43\x4D\x45\x20\x5A\x49\x50' b'\x20\x43\x4F\x44\x45\x00\x00\x00'))
def test_init(self): ServerInformation()