Example #1
0
    def test_config_loadConfig_valid_port_types_all_work(self):

        validTypes = ['UART', 'uart', 'USB', 'usb', 'I2C', 'i2c']

        for t in validTypes:
            with patch("builtins.open",
                       mock_open(read_data=json.dumps({"port_type": t})),
                       create=True) as mockOpen:
                c = config.loadConfig()
                self.assertEqual(c.PortType, t.lower())
Example #2
0
    def test_config_loadConfig_valid_baudrates_all_work(self):

        validRates = [9600, 115200]

        for r in validRates:
            with patch("builtins.open",
                       mock_open(read_data=json.dumps({"port_baudrate": r})),
                       create=True) as mockOpen:
                c = config.loadConfig()
                self.assertEqual(c.PortBaudRate, r)
Example #3
0
    def test_config_loadConfig_no_json_content_returnDefaults(self):

        with patch("builtins.open", mock_open(read_data="{}"),
                   create=True) as mockOpen:

            c = config.loadConfig()

            self.assertIsNone(c.ProductUID)
            self.assertEqual(c.HubHost, config.DEFAULT_HUB_HOST)
            self.assertEqual(c.PortType, config.DEFAULT_PORT_TYPE)
            self.assertEqual(c.Debug, config.DEFAULT_DEBUG_FLAG)
            self.assertEqual(c.PortID, config.DEFAULT_PORT_ID)
            self.assertEqual(c.PortBaudRate, config.DEFAULT_PORT_BAUDRATE)
Example #4
0
    def test_config_loadConfig_returnsConfigFromFile(self):

        data = {
            "product_uid": "dummy_product_uid",
            "hub_host": "test-host.net",
            "port_type": "i2c",
            "port_id": 17,
            "port_baudrate": 115200,
            "debug": False
        }

        with patch("builtins.open",
                   mock_open(read_data=json.dumps(data)),
                   create=True) as mockOpen:

            c = config.loadConfig()

            self.assertEqual(c.ProductUID, data["product_uid"])
            self.assertEqual(c.HubHost, data["hub_host"])
            self.assertEqual(c.PortType, data["port_type"])
            self.assertEqual(c.PortID, data["port_id"])
            self.assertEqual(c.PortBaudRate, data["port_baudrate"])
            self.assertEqual(c.Debug, data["debug"])
Example #5
0
    def test_config_loadConfig_fileNameArg_usesFileNameArg(self, mockOpen):

        fileName = "testName.json"
        c = config.loadConfig(fileName=fileName)

        mockOpen.assert_called_once_with(fileName, 'r')
Example #6
0
    def test_config_loadConfig_noInputArg_usesDefaultFileName(self, mockOpen):

        c = config.loadConfig()

        mockOpen.assert_called_once_with(config.DEFAULT_SECRETS_FILE_NAME, 'r')
#!/usr/bin/env python3


from src.light_controller import LightController
from src.message_handler import MessageHandler
from src.config import loadConfig
from src.subscriber import start_mqtt, set_on_message_callback


if __name__ == "__main__":
    loadConfig("config.json")
    
    # Create a light controller and initialize a bulb
    lightController = LightController()
    lightController.initializeBulb()

    # Create a message handler and pass the light controller
    messageHandler = MessageHandler(lightController)

    # Start the mqtt service and set the 
    start_mqtt()
    set_on_message_callback(messageHandler.receiveData)