Beispiel #1
0
 def test_request(self):
     persistence = Persistence('test.db')
     now = datetime.utcnow().replace(microsecond=0)
     dt0 = now - timedelta(seconds=30)
     persistence.store(dt0, 100.0, 100.0, 100.0, 100.0)
     service = Service(persistence)
     response = service.request(self.start_response)
     self.assertEqual(
         response.next(),
         'data: {"dest": "archive", "items": [], "type": "preload"}\n\n')
     self.assertEqual(
         response.next(),
         'data: {"dest": "recent", "items": [{"dt": "%sZ", "humidity": 100.0, "temperature": 100.0, "moisture": 100.0, "luminence": 100.0}], "type": "preload"}\n\n'
         % dt0.isoformat())
     dt1 = now
     service.enqueue('recent', 'realtime', [{
         'dt': dt1,
         'moisture': 200.0,
         'luminence': 200.0,
         'temperature': 200.0,
         'humidity': 200.0
     }])
     self.assertEqual(
         response.next(),
         'data: {"dest": "recent", "items": [{"dt": "%sZ", "humidity": 200.0, "temperature": 200.0, "moisture": 200.0, "luminence": 200.0}], "type": "realtime"}\n\n'
         % dt1.isoformat())
Beispiel #2
0
class TestPersistence(unittest.TestCase):
    def setUp(self):
        self.persistence = Persistence('test.db')

    def tearDown(self):
        if os.path.exists('test.db'):
            os.remove('test.db')

    def test_init(self):
        self.assertEqual(os.path.exists('test.db'), True)

    def test_historical(self):
        now = datetime.utcnow().replace(microsecond=0)
        dt0 = now - timedelta(seconds=120)
        dt1 = now - timedelta(seconds=30)
        dt2 = now - timedelta(seconds=15)
        self.persistence.store(dt0, 0.1, 0.1, 0.1, 0.1)
        self.persistence.store(dt1, 0.2, 0.2, 0.2, 0.2)
        self.persistence.store(dt2, 0.3, 0.3, 0.3, 0.3)
        result = self.persistence.historical(60)
        expected = [{
            'dt': dt1,
            'moisture': 0.2,
            'luminence': 0.2,
            'temperature': 0.2,
            'humidity': 0.2
        }, {
            'dt': dt2,
            'moisture': 0.3,
            'luminence': 0.3,
            'temperature': 0.3,
            'humidity': 0.3
        }]
        self.assertEqual(result, expected)

    def test_historical_archive(self):
        now = datetime.utcnow().replace(minute=0, second=0, microsecond=0)
        dt0 = now - timedelta(minutes=80)
        dt1 = now - timedelta(minutes=70)
        dt2 = now - timedelta(minutes=30)
        self.persistence.store(dt0, 0.0, 0.0, 0.0, 0.0)
        self.persistence.store(dt1, 0.2, 0.2, 0.2, 0.2)
        self.persistence.store(dt2, 0.3, 0.3, 0.3, 0.3)
        expected = [
            {
                'dt': dt1.replace(minute=0),
                'moisture': 0.1,
                'luminence': 0.1,
                'temperature': 0.1,
                'humidity': 0.1
            },
            {
                'dt': dt2.replace(minute=0),
                'moisture': 0.3,
                'luminence': 0.3,
                'temperature': 0.3,
                'humidity': 0.3
            },
        ]
        self.persistence.archive()
        result = self.persistence.historical_archive(3)
        self.assertEqual(result, expected)