def test_assignment_and_exceptions(self): """Check incorrect types/values for properties raise exceptions""" primitive = UserIdentityNegotiation() for type_no in [1, 2, 3, 4, 5]: primitive.user_identity_type = type_no assert primitive.user_identity_type == type_no with pytest.raises(ValueError): primitive.user_identity_type = 6 with pytest.raises(TypeError): primitive.user_identity_type = "a" primitive.positive_response_requested = True assert primitive.positive_response_requested with pytest.raises(TypeError): primitive.positive_response_requested = "test" primitive.primary_field = None assert primitive.primary_field is None primitive.primary_field = b"\x00\x01" assert primitive.primary_field == b"\x00\x01" with pytest.raises(TypeError): primitive.primary_field = ["test"] primitive.secondary_field = b"\x00\x21" assert primitive.secondary_field == b"\x00\x21" primitive.secondary_field = None assert primitive.secondary_field is None with pytest.raises(TypeError): primitive.secondary_field = ["test"] primitive.server_response = None assert primitive.server_response is None primitive.server_response = b"\x00\x31" assert primitive.server_response == b"\x00\x31" with pytest.raises(TypeError): primitive.server_response = ["test"] primitive = UserIdentityNegotiation() with pytest.raises(ValueError): primitive.from_primitive() primitive.user_identity_type = None assert primitive.user_identity_type is None primitive.user_identity_type = 2 with pytest.raises(ValueError): primitive.from_primitive()
def add_user_identity(self, primitive, id_type, primary, secondary, response): """Add User Identity to the A-ASSOCIATE primitive.""" item = UserIdentityNegotiation() item.user_identity_type = id_type item.primary_field = primary item.secondary_field = secondary item.positive_response_requested = response primitive.user_information.append(item)
def test_string(self): """Check string output.""" primitive = UserIdentityNegotiation() primitive.user_identity_type = 1 primitive.positive_response_requested = True primitive.primary_field = b'\x00\x01' primitive.secondary_field = b'\x00\x21' assert 'requested: True' in primitive.__str__() assert 'type: 1' in primitive.__str__() assert 'Primary' in primitive.__str__() assert 'Secondary' in primitive.__str__() primitive.server_response = b'\x00\x31' assert 'Server response' in primitive.__str__()
def test_string(self): """Check string output.""" primitive = UserIdentityNegotiation() primitive.user_identity_type = 1 primitive.positive_response_requested = True primitive.primary_field = b"\x00\x01" primitive.secondary_field = b"\x00\x21" assert "requested: True" in primitive.__str__() assert "type: 1" in primitive.__str__() assert "Primary" in primitive.__str__() assert "Secondary" in primitive.__str__() primitive.server_response = b"\x00\x31" assert "Server response" in primitive.__str__()
def test_conversion(self): """ Check converting to PDU item works correctly """ primitive = UserIdentityNegotiation() # -RQ primitive.user_identity_type = 1 primitive.primary_field = b'test' item = primitive.from_primitive() primitive.user_identity_type = 2 primitive.secondary_field = b'' with pytest.raises(ValueError): item = primitive.from_primitive() # -AC primitive = UserIdentityNegotiation() primitive.server_response = b'Test' item = primitive.from_primitive() assert item.encode() == b'\x59\x00\x00\x06\x00\x04\x54\x65\x73\x74'
from pynetdicom import (AE, StoragePresentationContexts, QueryRetrievePresentationContexts, build_role) from pynetdicom.pdu_primitives import UserIdentityNegotiation ae = AE() # Contexts proposed as a QR SCU ae.requested_contexts = QueryRetrievePresentationContexts # Contexts supported as a Storage SCP - requires Role Selection ae.requested_contexts = StoragePresentationContexts # Add role selection items for the storage contexts we will be supporting # as an SCP negotiation_items = [] for context in StoragePresentationContexts: role = build_role(context.abstract_syntax, scp_role=True) negotiation_items.append(role) # Add user identity negotiation request user_identity = UserIdentityNegotiation() user_identity.user_identity_type = 2 user_identity.primary_field = b'username' user_identity.secondary_field = b'password' negotiation_items.append(user_identity) # Associate with the peer at IP address 127.0.0.1 and port 11112 assoc = ae.associate('127.0.0.1', 11112, ext_neg=negotiation_items) if assoc.is_established: assoc.release()