def test_generate_power_value(self):
        meter_house_a = Meter("HOUSE_A")
        loop = asyncio.get_event_loop()
        power_value = loop.run_until_complete(meter_house_a.generate_power_value())

        self.assertTrue(power_value["house"] is "HOUSE_A")
        self.assertIsInstance(power_value["house"], str)
        self.assertIsInstance(power_value["datetime"], float)
        self.assertIsInstance(power_value["pv"], int)
        self.assertTrue(cfg.PV_MIN < power_value["pv"] < cfg.PV_MAX)
 def test_publish(self):
     try:
         meter_house = Meter("HOUSE_TEST")
         loop = asyncio.get_event_loop()
         loop.run_until_complete(self._publisher.connect_to_broker())
         pv_house_a = loop.run_until_complete(
             meter_house.generate_power_value())
         loop.run_until_complete(self._publisher.publish(pv_house_a))
         self.assertTrue(True)
     except ConnectionError:
         self.assertTrue(False)
    def test_put(self):
        broker_address = cfg.BROKER_ADDRESS
        broker_exchange_name = cfg.EXCHANGE_NAME
        broker_queue_name = cfg.QUEUE_NAME
        broker_client = BrokerClient(broker_address, broker_exchange_name,
                                     broker_queue_name)
        meter_house_a = Meter("HOUSE_A")
        loop = asyncio.get_event_loop()
        power_value = loop.run_until_complete(
            meter_house_a.generate_power_value())
        loop.run_until_complete(broker_client.connect())
        loop.run_until_complete(broker_client.put(power_value))

        self.assertIsInstance(broker_client, BrokerClient)
        self.assertTrue(broker_client)