示例#1
0
    def testChannelReceive(self):
        _log.debug("\ntestChannelReceive")

        # 3 bytes address 3 bytes function
        sentChars = "\xc3"
        # address byte, function
        self.router = DummyRouter()
        rxChars = "\x5a\x03\x02\x66\x62"
        self._infile = StringIO(rxChars)
        self.x10 = X10Handler("TestX10", self.router, self._outfile, self._infile)
        cfg = getDictFromXml(parseXmlString(testConfigX10Off))
        self.x10.configure(cfg["eventInterface"])
        self.x10.start()
        time.sleep(1.0)

        sent = self._outfile.getvalue()
        _log.debug("sent %s - %s" % (sent, sentChars))
        # verify.
        self.assertEqual(sent, sentChars)

        self.x10.stop()

        self.assert_(len(self.router._pubs) >= 1)
示例#2
0
class TestX10(unittest.TestCase):
    def setUp(self):
        self._outfile = StringIO()
        self._infile = StringIO()

        self.router = None
        self.loader = None

        return

    def tearDown(self):
        if self.loader:
            self.loader.stop()  # all tasks
            self.loader = None
            time.sleep(2)
        self.router = None

        _log.debug("tearDown")
        return

    def testChannelDim(self):
        _log.debug("\ntestChannelDim")

        # 3 bytes address 3 bytes function
        sentChars = "\x04\x66\x00\xB6\x64\x00"
        rxChars = "\x6A\x55\x1A\x55"
        self._infile = StringIO(rxChars)
        self.x10 = X10Handler("TestX10", DummyRouter(), self._outfile, self._infile)
        cfg = getDictFromXml(parseXmlString(testConfigX10Dim))
        self.x10.configure(cfg["eventInterface"])
        self.x10.start()

        self.x10.handleEvent(Events.evtMinute1)  # send channel command
        time.sleep(1.0)

        sent = self._outfile.getvalue()
        _log.debug("sent %s - %s" % (sent, sentChars))
        # verify.
        self.assertEqual(sent, sentChars)

        self.x10.stop()

    def testChannelOn(self):
        _log.debug("\ntestChannelOn")

        # 3 bytes address 3 bytes function
        sentChars = "\x04\x66\x00\x06\x62\x00"
        rxChars = "\x6A\x55\x68\x55"
        self._infile = StringIO(rxChars)
        self.x10 = X10Handler("TestX10", DummyRouter(), self._outfile, self._infile)
        cfg = getDictFromXml(parseXmlString(testConfigX10On))
        self.x10.configure(cfg["eventInterface"])
        self.x10.start()

        self.x10.handleEvent(Events.evtMinute1)  # send channel command
        time.sleep(1.0)

        sent = self._outfile.getvalue()
        _log.debug("sent %s - %s" % (sent, sentChars))
        # verify.
        self.assertEqual(sent, sentChars)

        self.x10.stop()

    def testPowerFail(self):
        _log.debug("\ntestPowerFail")
        # Test popwer fail from CM11

        # 3 bytes address 3 bytes function
        sentChars = "\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        rxChars = "\xa5\x00"
        self._infile = StringIO(rxChars)
        self.x10 = X10Handler("TestX10", DummyRouter(), self._outfile, self._infile)
        cfg = getDictFromXml(parseXmlString(testConfigX10On))
        self.x10.configure(cfg["eventInterface"])
        self.x10.start()

        time.sleep(2.0)

        self.x10.stop()

    def testPowerFail2(self):
        _log.debug("\ntestPowerFail2")
        # Test popwer fail from CP10

        # 3 bytes address 3 bytes function
        sentChars = "\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        rxChars = "\xa6\x00"
        self._infile = StringIO(rxChars)
        self.x10 = X10Handler("TestX10", DummyRouter(), self._outfile, self._infile)
        cfg = getDictFromXml(parseXmlString(testConfigX10On))
        self.x10.configure(cfg["eventInterface"])
        self.x10.start()

        time.sleep(2.0)

        self.x10.stop()

    def testChannelOff(self):
        _log.debug("\ntestChannelOff")

        # 3 bytes address 3 bytes function
        sentChars = "\x04\x66\x00\x06\x63\x00"
        rxChars = "\x6A\x55\x69\x55"
        self._infile = StringIO(rxChars)
        self.x10 = X10Handler("TestX10", DummyRouter(), self._outfile, self._infile)
        cfg = getDictFromXml(parseXmlString(testConfigX10Off))
        self.x10.configure(cfg["eventInterface"])
        self.x10.start()

        self.x10.handleEvent(Events.evtMinute1)  # send channel command
        time.sleep(1.0)

        sent = self._outfile.getvalue()
        _log.debug("sent %s - %s" % (sent, sentChars))
        # verify.
        self.assertEqual(sent, sentChars)

        self.x10.stop()

    def testChannelReceive(self):
        _log.debug("\ntestChannelReceive")

        # 3 bytes address 3 bytes function
        sentChars = "\xc3"
        # address byte, function
        self.router = DummyRouter()
        rxChars = "\x5a\x03\x02\x66\x62"
        self._infile = StringIO(rxChars)
        self.x10 = X10Handler("TestX10", self.router, self._outfile, self._infile)
        cfg = getDictFromXml(parseXmlString(testConfigX10Off))
        self.x10.configure(cfg["eventInterface"])
        self.x10.start()
        time.sleep(1.0)

        sent = self._outfile.getvalue()
        _log.debug("sent %s - %s" % (sent, sentChars))
        # verify.
        self.assertEqual(sent, sentChars)

        self.x10.stop()

        self.assert_(len(self.router._pubs) >= 1)

    def testRealToggle(self):
        _log.debug("\ntestRealToggle")
        self.loader = EventRouterLoader()
        self.loader.loadHandlers(getDictFromXmlString(testConfigX10))
        self.loader.start()  # all tasks
        self.router = self.loader.getEventRouter()

        time.sleep(2)  # let it start

        self.router.publish(EventAgent("TestX10"), Events.evtSecond0)  # Switch On
        time.sleep(2)

        self.router.publish(EventAgent("TestX10"), Events.evtSecond30)  # Switch Off
        time.sleep(2)

        # command a device to switch on.
        # verify command string.
        # self.assert_( len(TestEventLogger._events) >= 1)

    def testRealChannelOn(self):
        _log.debug("\ntestRealChannelOn")
        self.loader = EventRouterLoader()
        self.loader.loadHandlers(getDictFromXmlString(testConfigX10))
        self.loader.start()  # all tasks
        self.router = self.loader.getEventRouter()
        time.sleep(2)  # let it start

        self.router.publish(EventAgent("TestX10"), Events.evtSecond0)  # Switch On
        time.sleep(2)

        # command a device to switch on.
        # verify command string.
        # self.assert_( len(TestEventLogger._events) >= 1)

    def testRealChannelDimOn(self):
        _log.debug("\ntestRealChannelDimOn")
        self.loader = EventRouterLoader()
        self.loader.loadHandlers(getDictFromXmlString(testConfigX10))
        self.loader.start()  # all tasks
        self.router = self.loader.getEventRouter()
        time.sleep(2)  # let it start

        self.router.publish(EventAgent("TestX10"), Events.evtSecond15)  # Switch On
        time.sleep(10)

        # command a device to switch on.
        # verify command string.
        # self.assert_( len(TestEventLogger._events) >= 1)

    def testRealChannelDimOff(self):
        _log.debug("\ntestRealChannelDimOff")
        self.loader = EventRouterLoader()
        self.loader.loadHandlers(getDictFromXmlString(testConfigX10))
        self.loader.start()  # all tasks
        self.router = self.loader.getEventRouter()
        time.sleep(2)  # let it start

        self.router.publish(EventAgent("TestX10"), Events.evtSecond45)  # Switch On
        time.sleep(10)

        # command a device to switch on.
        # verify command string.
        # self.assert_( len(TestEventLogger._events) >= 1)

    def testRealChannelOff(self):
        _log.debug("\ntestRealChannelOff")
        self.loader = EventRouterLoader()
        self.loader.loadHandlers(getDictFromXmlString(testConfigX10))
        self.loader.start()  # all tasks
        self.router = self.loader.getEventRouter()
        time.sleep(2)  # let it start

        self.router.publish(EventAgent("TestX10"), Events.evtSecond30)  # Switch Off
        time.sleep(2)

        # command a device to switch on.
        # verify command string.
        # self.assert_( len(TestEventLogger._events) >= 1)

    # Actual tests follow
    def testRealPowerFail(self):
        _log.debug("\ntestRealPowerFail")
        self.loader = EventRouterLoader()
        self.loader.loadHandlers(getDictFromXmlString(testConfigX10))
        self.loader.start()  # all tasks
        self.router = self.loader.getEventRouter()
        time.sleep(10)  # let it start

        # command a device to switch on.
        # verify command string.
        # self.assert_( len(TestEventLogger._events) >= 1)

    # Actual tests follow
    def testRealChannelReceive(self):
        _log.debug("\ntestRealChannelReceive")
        self.loader = EventRouterLoader()
        self.loader.loadHandlers(getDictFromXmlString(testConfigX10))
        self.loader.start()  # all tasks
        self.router = self.loader.getEventRouter()
        time.sleep(10)  # let it start

        # command a device to switch on.
        # verify command string.
        self.assert_(len(TestEventLogger._events) >= 1)