from django.test import TestCase, Client from django.conf import settings from coffee_scale.mqtt import on_message HOST = settings.MQTT_SETTINGS['HOST'] PORT = settings.MQTT_SETTINGS['PORT'] TOPICS = settings.MQTT_SETTINGS['TOPICS'] class MQTTTestCase(TestCase): """Tests MQTT functionality""" class MockMessage: def __init__(self, payload, topic): self.payload = payload self.topic = topic def setUp(self): payload = '10'.encode('utf-8') topic = TOPICS['CUPS'] msg = MQTTTestCase.MockMessage(payload, topic) on_message(None, None, msg) self.c = Client() def test_receive_cups(self): response = self.c.get('/coffee/cups') payload = response.json() self.assertEquals(payload['cups'], 10)