def test_AbstractMetricStateContainer_Final(self): dc = descriptorcontainers.NumericMetricDescriptorContainer( nsmapper=self.nsmapper, nodeName='MyDescriptor', handle='123', parentHandle='456') sc = statecontainers.NumericMetricStateContainer( nsmapper=self.nsmapper, descriptorContainer=dc, node=None) self.assertEqual(sc.ActivationState, 'On') for value in ('foo', 'bar'): sc.ActivationState = value self.assertEqual(sc.ActivationState, value) node = sc.mkStateNode() self.assertEqual(node.get('ActivationState'), value) self.assertEqual(sc.ActiveDeterminationPeriod, None) for value in (21, 42): sc.ActiveDeterminationPeriod = value self.assertEqual(sc.ActiveDeterminationPeriod, value) node = sc.mkStateNode() self.assertEqual( node.get('ActiveDeterminationPeriod'), containerproperties.DurationConverter.toXML(value)) sc.BodySite = [pmtypes.CodedValue('ABC')] sc.PhysicalConnector = pmtypes.PhysicalConnectorInfo( [pmtypes.LocalizedText('ABC')], 1) # test creation from node node = sc.mkStateNode() sc2 = statecontainers.NumericMetricStateContainer( nsmapper=self.nsmapper, descriptorContainer=dc, node=node) self.assertEqual(sc.ActivationState, sc2.ActivationState) self.assertEqual(sc.ActiveDeterminationPeriod, sc2.ActiveDeterminationPeriod) self.assertEqual(sc.BodySite, sc2.BodySite) self.assertEqual(sc.PhysicalConnector, sc2.PhysicalConnector) self._verifyAbstractStateContainerDataEqual(sc, sc2) # test update from Node sc.ActivationState = 'something else' sc.ActiveDeterminationPeriod += 1 sc.BodySite = [pmtypes.CodedValue('DEF')] sc.PhysicalConnector = pmtypes.PhysicalConnectorInfo( [pmtypes.LocalizedText('DEF')], 2) sc.incrementState() node = sc.mkStateNode() sc2.updateFromNode(node) self.assertEqual(sc.ActivationState, sc2.ActivationState) self.assertEqual(sc.BodySite, sc2.BodySite) self.assertEqual(sc.PhysicalConnector, sc2.PhysicalConnector) self.assertEqual(sc.ActiveDeterminationPeriod, sc2.ActiveDeterminationPeriod) self._verifyAbstractStateContainerDataEqual(sc, sc2)
def __init__(self, wsdiscovery, my_uuid, mdib_xml_string, validate=True, sslContext=None, logLevel=logging.INFO, log_prefix='', chunked_messages=False): model = DPWSThisModel( manufacturer='Draeger CoC Systems', manufacturerUrl='www.draeger.com', modelName='SomeDevice', modelNumber='1.0', modelUrl='www.draeger.com/whatever/you/want/model', presentationUrl='www.draeger.com/whatever/you/want/presentation') device = DPWSThisDevice(friendlyName='Py SomeDevice', firmwareVersion='0.99', serialNumber='12345') # log_prefix = '' if not ident else '<{}>:'.format(ident) deviceMdibContainer = DeviceMdibContainer.fromString( mdib_xml_string, log_prefix=log_prefix) # set Metadata mdsDescriptor = deviceMdibContainer.descriptions.NODETYPE.getOne( namespaces.domTag('MdsDescriptor')) mdsDescriptor.Manufacturer.append(pmtypes.LocalizedText(u'Dräger')) mdsDescriptor.ModelName.append( pmtypes.LocalizedText(model.modelName[None])) mdsDescriptor.SerialNumber.append( pmtypes.ElementWithTextOnly('ABCD-1234')) mdsDescriptor.ModelNumber = '0.99' mdsDescriptor.updateNode() super(SomeDevice, self).__init__( wsdiscovery, my_uuid, model, device, deviceMdibContainer, validate, # registerDefaultOperations=True, sslContext=sslContext, logLevel=logLevel, log_prefix=log_prefix, chunked_messages=chunked_messages)
def test_PatientContextStateContainer_final(self): def verifyEqual(origin, copied): self.assertEqual(copied.Handle, origin.Handle) self.assertEqual(copied.Givenname, origin.Givenname) self.assertEqual(copied.Middlename, origin.Middlename) self.assertEqual(copied.Familyname, origin.Familyname) self.assertEqual(copied.DateOfBirth, origin.DateOfBirth) self.assertEqual(copied.Height, origin.Height) self.assertEqual(copied.Weight, origin.Weight) self.assertEqual(copied.Race, origin.Race) self.assertEqual(copied.Identification, origin.Identification) self._verifyAbstractStateContainerDataEqual(copied, origin) sc = statecontainers.PatientContextStateContainer( nsmapper=self.nsmapper, descriptorContainer=self.dc, node=None) self.assertTrue(sc.Handle is not None) sc.Givenname = 'Karl' sc.Middlename = 'M.' sc.Familyname = 'Klammer' sc.Height = pmtypes.Measurement(88.2, pmtypes.CodedValue('abc', 'def')) sc.Weight = pmtypes.Measurement(68.2, pmtypes.CodedValue('abc')) sc.Race = pmtypes.CodedValue('123', 'def') sc.DateOfBirth = datetime.date(2001, 3, 12) print(sc.DateOfBirth) sc.Identification.append( pmtypes.InstanceIdentifier('abc', pmtypes.CodedValue('123'), [ pmtypes.LocalizedText('Peter', 'en'), pmtypes.LocalizedText('Paul'), pmtypes.LocalizedText('Mary') ])) sc.Identification.append( pmtypes.InstanceIdentifier('def', pmtypes.CodedValue('456'), [ pmtypes.LocalizedText('John'), pmtypes.LocalizedText('Jim'), pmtypes.LocalizedText('Jane') ])) #test creation from node node = sc.mkStateNode() print(etree_.tostring(node, pretty_print=True)) sc2 = statecontainers.PatientContextStateContainer( nsmapper=self.nsmapper, descriptorContainer=self.dc, node=node) verifyEqual(sc, sc2) #test update from node sc.Middlename = 'K.' sc.DateOfBirth = datetime.datetime(2001, 3, 12, 14, 30, 1) sc.incrementState() sc.Height._value = 42 sc.Weight._value = 420 node = sc.mkStateNode() sc2.updateFromNode(node) verifyEqual(sc, sc2)
def test_AbstractDeviceComponentStateContainer_Final(self): def verifyEqual(origin, copied): self.assertEqual(copied.ActivationState, origin.ActivationState) self.assertEqual(copied.OperatingHours, origin.OperatingHours) self.assertEqual(copied.OperatingCycles, origin.OperatingCycles) self.assertEqual(copied.PhysicalConnector, origin.PhysicalConnector) self._verifyAbstractStateContainerDataEqual(copied, origin) sc = statecontainers.AbstractDeviceComponentStateContainer( nsmapper=self.nsmapper, descriptorContainer=self.dc, node=None) self.assertEqual(sc.ActivationState, None) self.assertEqual(sc.OperatingHours, None) self.assertEqual(sc.OperatingCycles, None) self.assertEqual(sc.PhysicalConnector, None) sc.ActivationState = 'On' sc.OperatingHours = 2.3 sc.OperatingHours = 4 sc.PhysicalConnector = pmtypes.PhysicalConnectorInfo( [pmtypes.LocalizedText('ABC')], 1) # test creation from node node = sc.mkStateNode() sc2 = statecontainers.AbstractDeviceComponentStateContainer( nsmapper=self.nsmapper, descriptorContainer=self.dc, node=node) verifyEqual(sc, sc2) sc.ActivationState = 'Off' sc.OperatingHours += 1 sc.OperatingHours += 1 sc.PhysicalConnector = pmtypes.PhysicalConnectorInfo( [pmtypes.LocalizedText('DEF')], 2) node = sc.mkStateNode() sc2.updateFromNode(node) verifyEqual(sc, sc2)
def test_AlertConditionDescriptorContainer(self): dc = descriptorcontainers.AlertConditionDescriptorContainer( nsmapper=self.nsmapper, nodeName=namespaces.domTag('MyDescriptor'), handle='123', parentHandle='456', ) # create copy with default values node = dc.mkNode() dc2 = descriptorcontainers.AlertConditionDescriptorContainer.fromNode( nsmapper=self.nsmapper, node=node, parentHandle='467') self._cmp_AlertConditionDescriptorContainer(dc, dc2) # set values, test updateFromNode dc.Source = [ pmtypes.ElementWithTextOnly('A'), pmtypes.ElementWithTextOnly('B') ] dc.Cause = [ pmtypes.CauseInfo(remedyInfo=pmtypes.RemedyInfo( [pmtypes.LocalizedText('abc'), pmtypes.LocalizedText('def')]), descriptions=[ pmtypes.LocalizedText('descr1'), pmtypes.LocalizedText('descr2') ]), pmtypes.CauseInfo(remedyInfo=pmtypes.RemedyInfo( [pmtypes.LocalizedText('123'), pmtypes.LocalizedText('456')]), descriptions=[ pmtypes.LocalizedText('descr1'), pmtypes.LocalizedText('descr2') ]) ] dc.Kind = 'cont' dc.Priority = 'High' node = dc.mkNode() dc2.updateDescrFromNode(node) self._cmp_AlertConditionDescriptorContainer(dc, dc2) # create copy with values set dc2 = descriptorcontainers.AlertConditionDescriptorContainer.fromNode( nsmapper=self.nsmapper, node=node, parentHandle='467') self._cmp_AlertConditionDescriptorContainer(dc, dc2)
def test_AbstractContextStateContainer(self): def verifyEqual(origin, copied): self.assertEqual(copied.ContextAssociation, origin.ContextAssociation) self.assertEqual(copied.BindingMdibVersion, origin.BindingMdibVersion) self.assertEqual(copied.UnbindingMdibVersion, origin.UnbindingMdibVersion) self.assertEqual(copied.BindingStartTime, origin.BindingStartTime) self.assertEqual(copied.BindingEndTime, origin.BindingEndTime) self.assertEqual(copied.Validator, origin.Validator) self.assertEqual(copied.Identification, origin.Identification) self._verifyAbstractStateContainerDataEqual(copied, origin) sc = statecontainers.AbstractContextStateContainer( nsmapper=self.nsmapper, descriptorContainer=self.dc, node=None) self.assertEqual(sc.ContextAssociation, 'No') self.assertEqual(sc.BindingMdibVersion, None) self.assertEqual(sc.UnbindingMdibVersion, None) self.assertEqual(sc.BindingStartTime, None) self.assertEqual(sc.BindingEndTime, None) self.assertEqual(sc.Validator, []) self.assertEqual(sc.Identification, []) idents = [ pmtypes.InstanceIdentifier( root='abc', type_codedValue=pmtypes.CodedValue('abc', 'def'), identifierNames=[pmtypes.LocalizedText('ABC')], extensionString='123') ] sc.Identification = idents self.assertEqual(sc.Identification, idents) validators = [ pmtypes.InstanceIdentifier( root='ABC', type_codedValue=pmtypes.CodedValue('123', '456'), identifierNames=[pmtypes.LocalizedText('DEF')], extensionString='321') ] sc.Validator = validators self.assertEqual(sc.Validator, validators) for value in ('assoc', 'disassoc'): sc.ContextAssociation = value node = sc.mkStateNode() self.assertEqual(node.get('ContextAssociation'), value) for value in (12345.123, 67890.987): sc.BindingStartTime = value sc.BindingEndTime = value + 1 node = sc.mkStateNode() self.assertEqual( node.get('BindingStartTime'), containerproperties.TimestampConverter.toXML(value)) self.assertEqual( node.get('BindingEndTime'), containerproperties.TimestampConverter.toXML(value + 1)) for value in (0, 42, 123): sc.BindingMdibVersion = value sc.UnbindingMdibVersion = value + 1 node = sc.mkStateNode() self.assertEqual(node.get('BindingMdibVersion'), containerproperties.IntegerConverter.toXML(value)) self.assertEqual( node.get('UnbindingMdibVersion'), containerproperties.IntegerConverter.toXML(value + 1)) node = etree_.Element(namespaces.domTag('State'), attrib={ 'StateVersion': '2', 'DescriptorHandle': '123', 'BindingStartTime': '1234567', 'BindingEndTime': '2345678', 'Handle': sc.Handle }) sc.updateFromNode(node) self.assertEqual(sc.BindingStartTime, 1234.567) self.assertEqual(sc.BindingEndTime, 2345.678) self.assertEqual(sc.node.get('BindingStartTime'), '1234567') self.assertEqual(sc.node.get('BindingEndTime'), '2345678') self.assertEqual(sc.Identification, []) self.assertEqual(sc.Validator, []) #test creation from node sc.Identification = idents sc.Validator = validators node = sc.mkStateNode() sc2 = statecontainers.AbstractContextStateContainer( nsmapper=self.nsmapper, descriptorContainer=self.dc, node=node) verifyEqual(sc, sc2)