def test_assignment_and_exceptions(self): """Check incorrect setter for implementation_class_uid raises""" primitive = ImplementationClassUIDNotification() ## Check assignment reference_uid = UID('1.2.826.0.1.3680043.9.3811.0.9.0') # bytes primitive.implementation_class_uid = ( b'1.2.826.0.1.3680043.9.3811.0.9.0') assert primitive.implementation_class_uid == reference_uid # str primitive.implementation_class_uid = ( '1.2.826.0.1.3680043.9.3811.0.9.0') assert primitive.implementation_class_uid == reference_uid # UID primitive.implementation_class_uid = UID( '1.2.826.0.1.3680043.9.3811.0.9.0') assert primitive.implementation_class_uid == reference_uid ## Check exceptions primitive = ImplementationClassUIDNotification() # No value set with pytest.raises(ValueError): item = primitive.from_primitive() # Non UID, bytes or str with pytest.raises(TypeError): primitive.implementation_class_uid = 45.2 with pytest.raises(TypeError): primitive.implementation_class_uid = 100
def test_uid_conformance_true(self): """Test UID conformance with ENFORCE_UID_CONFORMANCE = True""" _config.ENFORCE_UID_CONFORMANCE = True primitive = ImplementationClassUIDNotification() with pytest.raises(ValueError): primitive.implementation_class_uid = 'abc'
def test_string(self): """Check the string output.""" primitive = ImplementationClassUIDNotification() primitive.implementation_class_uid = UID( '1.2.826.0.1.3680043.9.3811.0.9.0' ) assert '1.2.826.0.1.3680043.9.3811.0.9.0' in primitive.__str__()
def test_uid_conformance_false(self): """Test UID conformance with ENFORCE_UID_CONFORMANCE = False""" _config.ENFORCE_UID_CONFORMANCE = False primitive = ImplementationClassUIDNotification() primitive.implementation_class_uid = 'abc' assert primitive.implementation_class_uid == 'abc' with pytest.raises(ValueError): primitive.implementation_class_uid = 'abc' * 22
def test_conversion(self): """ Check converting to PDU item works correctly """ primitive = ImplementationClassUIDNotification() primitive.implementation_class_uid = UID( '1.2.826.0.1.3680043.9.3811.0.9.0') item = primitive.from_primitive() assert item.encode() == ( b"\x52\x00\x00\x20\x31\x2e\x32\x2e\x38\x32\x36\x2e\x30\x2e\x31" b"\x2e\x33\x36\x38\x30\x30\x34\x33\x2e\x39\x2e\x33\x38\x31\x31\x2e" b"\x30\x2e\x39\x2e\x30")
def test_exceptions(self): """ Check incorrect types/values for properties raise exceptions """ assoc = A_ASSOCIATE() # application_context_name with pytest.raises(TypeError): assoc.application_context_name = 10 with pytest.raises(TypeError): assoc.application_context_name = 45.2 # calling_ae_title with pytest.raises(TypeError): assoc.calling_ae_title = 45.2 with pytest.raises(TypeError): assoc.calling_ae_title = 100 with pytest.raises(ValueError): assoc.calling_ae_title = '' with pytest.raises(ValueError): assoc.calling_ae_title = ' ' # called_ae_title with pytest.raises(TypeError): assoc.called_ae_title = 45.2 with pytest.raises(TypeError): assoc.called_ae_title = 100 with pytest.raises(ValueError): assoc.called_ae_title = '' with pytest.raises(ValueError): assoc.called_ae_title = ' ' # user_information with pytest.raises(TypeError): assoc.user_information = 45.2 # result with pytest.raises(ValueError): assoc.result = -1 with pytest.raises(ValueError): assoc.result = 3 # result_source with pytest.raises(ValueError): assoc.result_source = 0 # result_source with pytest.raises(ValueError): assoc.result_source = 4 # diagnostic with pytest.raises(ValueError): assoc.diagnostic = 0 with pytest.raises(ValueError): assoc.diagnostic = 4 with pytest.raises(ValueError): assoc.diagnostic = 5 with pytest.raises(ValueError): assoc.diagnostic = 6 with pytest.raises(ValueError): assoc.diagnostic = 8 # calling_presentation_addresss with pytest.raises(TypeError): assoc.calling_presentation_address = ['10.40.94.43', 105] with pytest.raises(TypeError): assoc.calling_presentation_address = (105, '10.40.94.43') # called_presentation_addresss with pytest.raises(TypeError): assoc.called_presentation_address = ['10.40.94.43', 105] with pytest.raises(TypeError): assoc.called_presentation_address = (105, '10.40.94.43') # presentation_context_definition_list with pytest.raises(TypeError): assoc.presentation_context_definition_list = 45.2 # presentation_context_definition_results_list with pytest.raises(TypeError): assoc.presentation_context_definition_results_list = 45.2 # implementation_class_uid with pytest.raises(ValueError): x = assoc.implementation_class_uid imp_uid = ImplementationClassUIDNotification() assoc.user_information.append(imp_uid) with pytest.raises(ValueError): x = assoc.implementation_class_uid
def setup(self): """Setup each test.""" self.acse = ACSE(5) # A-ASSOCIATE (request) primitive = A_ASSOCIATE() primitive.application_context_name = APPLICATION_CONTEXT_NAME # Calling AE Title is the source DICOM AE title primitive.calling_ae_title = b'ABCDEFGHIJKLMNOP' # Called AE Title is the destination DICOM AE title primitive.called_ae_title = b'1234567890123456' # The TCP/IP address of the source, pynetdicom includes port too primitive.calling_presentation_address = ('127.127.127.127', 111112) # The TCP/IP address of the destination, pynetdicom includes port too primitive.called_presentation_address = ('0.0.0.0', 0) # Proposed presentation contexts contexts = [ build_context('1.2.3.4.5.6', JPEGBaseline), build_context('1.2.840.10008.1.1') ] for ii, cx in enumerate(contexts): cx.context_id = ii * 2 + 1 primitive.presentation_context_definition_list = contexts item = MaximumLengthNotification() item.maximum_length_received = 0 primitive.user_information.append(item) item = ImplementationClassUIDNotification() item.implementation_class_uid = generate_uid(entropy_srcs=['lorem']) primitive.user_information.append(item) self.associate_rq = primitive # A-ASSOCIATE (accept) primitive = A_ASSOCIATE() primitive.application_context_name = APPLICATION_CONTEXT_NAME # Calling AE Title is the source DICOM AE title primitive.calling_ae_title = b'ABCDEFGHIJKLMNOP' # Called AE Title is the destination DICOM AE title primitive.called_ae_title = b'1234567890123456' # The TCP/IP address of the source, pynetdicom includes port too primitive.calling_presentation_address = ('127.127.127.127', 111112) # The TCP/IP address of the destination, pynetdicom includes port too primitive.called_presentation_address = ('0.0.0.0', 0) # Proposed presentation contexts contexts = [ build_context('1.2.3.4.5.6', JPEGBaseline), build_context('1.2.840.10008.1.1'), build_context('1.2.840.10008.1.1'), build_context('1.2.840.10008.1.1'), build_context('1.2.840.10008.1.1'), ] for ii, cx in enumerate(contexts): cx.context_id = ii * 2 + 1 cx.result = ii primitive.presentation_context_definition_results_list = contexts primitive.result = 0x00 item = MaximumLengthNotification() item.maximum_length_received = 0 primitive.user_information.append(item) item = ImplementationClassUIDNotification() item.implementation_class_uid = generate_uid(entropy_srcs=['lorem']) primitive.user_information.append(item) self.associate_ac = primitive