Example #1
0
    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)
Example #2
0
 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)
Example #3
0
    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)
Example #4
0
    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)
Example #6
0
    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)