运行测试cas时出错

2024-06-28 20:33:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我修改了代码并尝试运行测试用例,但仍然可以得到更好的情况。请看代码和错误,并指导我摆脱它。你知道吗

from brisa.core.reactors import install_default_reactor
reactor = install_default_reactor()

import os
import unittest

from brisa.upnp.device import Device, Service
from brisa.upnp.device.service import StateVariable

class SwitchPower(Service):
    def __init__(self):
        Service.__init__(self,
                         'SwitchPower',
                         'urn:schemas-upnp-org:service:SwitchPower:1',
                         '',
                         os.getcwd() + '/SwitchPower-scpd.xml')
        self.target = False
        self.status = False

    def SetTarget(self, *args, **kwargs):
        self.target = kwargs['NewTargetValue']
        self.status = self.target

        print 'Light switched ', {'1': 'on', '0': 'off'}.get(self.target, None)
        return {}

    def GetTarget(self, *args, **kwargs):
        return {'RetTargetValue': self.target}

    def soap_GetStatus(self, *args, **kwargs):
        return {'ResultStatus': self.status}

class BinaryLight(Device):  
    def __init__(self):
        Device.__init__(self,
                'urn:schemas=upnp-org:device:BinaryLight:1',
                'Binary Light Device')

# Here's our "unit tests".

class IsOddTests(unittest.TestCase):
    def testOne(self):
        b1 = SwitchPower()
        self.failUnless(b1.SetTarget('NewTargetValue'))

if __name__ == '__main__':
         unittest.main()

if __name__ == '__main__':
    device = BinaryLight()
    device += BinaryLight()
    device.start()
    reactor.add_after_stop_func(device.stop)
    reactor.main()

错误:

ERROR: testOne (__main__.IsOddTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "binary_light.py", line 54, in testOne
    self.failUnless(b1.SetTarget('NewTargetValue'))
  File "binary_light.py", line 25, in SetTarget
    self.target = kwargs['NewTargetValue']
KeyError: 'NewTargetValue'

Tags: importselftargetinitmaindevicedefupnp
1条回答
网友
1楼 · 发布于 2024-06-28 20:33:08

您没有将关键字列表传递到SetTarget。像这样做:

self.failUnless(b1.SetTarget(NewTargetValue='something'))

此错误:

Traceback (most recent call last):
  File "binary_light.py", line 54, in testOne
    self.failUnless(b1.SetTarget(NewTargetValue= 'something'))
AssertionError

相关问题 更多 >