开发者

Error while running test case

I need to test my code below. I am using one test to see if it is working or not. but dont know what exactly I should pass as a parameter in the test code. Please see the test code at the end and please guide me what value I should pass here? Because whatever I write here, it throws me an error.

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,
              开发者_C百科           '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
        self.set_state_variable('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(object):

    def __init__(self):
        self.server_name = 'Binary Light device'
        self.device = None
    def _create_device(self):
        project_page = 'https://garage.maemo.org/projects/brisa'
        self.device = Device('urn:schemas=upnp-org:device:BinaryLight:1',
                            self.server_name,
                            manufacturer = 'Ankit',
                            model_name = 'Binary Light Device',
                            model_description = 'Test Device',
                            model_number = '1.0',
                            model_url=project_page)
    def _add_service(self):
        switch = SwitchPower()
        self.device.add_service(switch)
    def start(self):
        self._create_device()
        self._add_services()
        self.device.start()
        reactor.add_after_stop_func(self.device.stop)
        reactor.main()


# Here's our "unit tests".

class IsOddTests(unittest.TestCase):



    def testOne(self):

        self.failUnless(_create_device('urn:schemas=upnp-org:device:BinaryLight:1'))


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



    if __name__ == '__main__':
        device = BinaryLight()
        device.start()   


Ran 1 test in 0.000s

The Error is:-

ERROR: testOne (__main__.IsOddTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "binary_light.py", line 67, in testOne
    self.failUnless(_create_device('urn:schemas=upnp-org:device:BinaryLight:1'))
NameError: global name '_create_device' is not defined

----------------------------------------------------------------------


In your testOne() method, you're calling _create_device(), which isn't a global function it's a method on SwitchPower objects.

You probably want to create a new SwitchPower object.


_create_device() is not defined in class IsOddTests. It is defined in BinaryLight.

I'm not completely sure about this, but what about changing:

self.failUnless(_create_device('urn:schemas=upnp-org:device:BinaryLight:1'))

to:

bl = BinaryLight()
self.failUnless(bl._create_device())

I removed:

'urn:schemas=upnp-org:device:BinaryLight:1'

because it was in the definition of _create_device().

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜