0
0
Fork 0
mirror of https://github.com/alerta/alerta.git synced 2025-02-11 00:12:26 +00:00
alerta_alerta/tests/test_heartbeats.py
2018-09-16 00:20:53 +02:00

75 lines
2.4 KiB
Python

import json
import unittest
from uuid import uuid4
from alerta.app import create_app, db
class HeartbeatTestCase(unittest.TestCase):
def setUp(self):
test_config = {
'TESTING': True,
'AUTH_REQUIRED': False
}
self.app = create_app(test_config)
self.client = self.app.test_client()
self.origin = str(uuid4()).upper()[:8]
self.heartbeat = {
'origin': self.origin,
'tags': ['foo', 'bar', 'baz']
}
self.headers = {
'Content-type': 'application/json'
}
def tearDown(self):
db.destroy()
def test_heartbeat(self):
# create heartbeat
response = self.client.post('/heartbeat', data=json.dumps(self.heartbeat), headers=self.headers)
self.assertEqual(response.status_code, 201)
data = json.loads(response.data.decode('utf-8'))
self.assertEqual(data['heartbeat']['origin'], self.origin)
self.assertListEqual(data['heartbeat']['tags'], self.heartbeat['tags'])
heartbeat_id = data['id']
# create duplicate heartbeat
response = self.client.post('/heartbeat', data=json.dumps(self.heartbeat), headers=self.headers)
self.assertEqual(response.status_code, 201)
data = json.loads(response.data.decode('utf-8'))
self.assertEquals(heartbeat_id, data['heartbeat']['id'])
# get heartbeat
response = self.client.get('/heartbeat/' + heartbeat_id)
self.assertEqual(response.status_code, 200)
data = json.loads(response.data.decode('utf-8'))
self.assertEquals(heartbeat_id, data['heartbeat']['id'])
# delete heartbeat
response = self.client.delete('/heartbeat/' + heartbeat_id)
self.assertEqual(response.status_code, 200)
def test_heartbeat_not_found(self):
response = self.client.get('/heartbeat/doesnotexist')
self.assertEqual(response.status_code, 404)
def test_get_heartbeats(self):
# create heartbeat
response = self.client.post('/heartbeat', data=json.dumps(self.heartbeat), headers=self.headers)
self.assertEqual(response.status_code, 201)
response = self.client.get('/heartbeats')
self.assertEqual(response.status_code, 200)
data = json.loads(response.data.decode('utf-8'))
self.assertGreater(data['total'], 0, 'total heartbeats > 0')