|
1 | 1 | import socket
|
| 2 | +import os |
2 | 3 |
|
3 | 4 | from fastapi.testclient import TestClient
|
4 | 5 |
|
5 |
| -from os import environ |
6 |
| - |
7 |
| -environ['sms_endpoint'] = 'sms.no?recipients={}&message={}&username={}&password={}' |
8 |
| -environ['username'] = 'testClient' |
9 |
| -environ['password'] = '123' |
| 6 | +os.environ['endpoint'] = 'sms.no?recipients={}&message={}&username={}&password={}' |
| 7 | +os.environ['username'] = 'testClient' |
| 8 | +os.environ['password'] = '123' |
| 9 | +os.environ['host'] = 'localhost' |
| 10 | +os.environ['port'] = '8080' |
10 | 11 |
|
11 | 12 | from main import app, transform_text, format_message
|
12 | 13 |
|
13 | 14 | client = TestClient(app)
|
14 | 15 |
|
| 16 | + |
15 | 17 | def test_index():
|
16 |
| - response = client.get('/') |
| 18 | + response = client.get("/") |
17 | 19 | assert response.status_code == 200
|
18 |
| - assert response.json() == {'message': 'Hello from {}'.format(socket.gethostname())} |
| 20 | + assert response.json() == {"message": "Hello from {}".format(socket.gethostname())} |
| 21 | + |
19 | 22 |
|
20 | 23 | class TestTransformText:
|
21 | 24 | def test_simple(self):
|
22 |
| - textToTransform = 'hello world' |
| 25 | + textToTransform = "hello world" |
23 | 26 | text = transform_text(textToTransform)
|
24 |
| - assert text == 'hello%20world' |
| 27 | + assert text == "hello%20world" |
25 | 28 |
|
26 | 29 | def test_newline(self):
|
27 |
| - textToTransform = 'hello\nworld' |
| 30 | + textToTransform = "hello\nworld" |
28 | 31 | text = transform_text(textToTransform)
|
29 |
| - assert text == 'hello%0aworld' |
| 32 | + assert text == "hello%0aworld" |
| 33 | + |
| 34 | + |
| 35 | +class TestFormatMessage: |
| 36 | + def test_alert(self): |
| 37 | + alert = { |
| 38 | + "status": "resolved", |
| 39 | + "labels": { |
| 40 | + "alertname": "Kafka connectivity test failing", |
| 41 | + "instance": "http://contests/kafka", |
| 42 | + "job": "probe/nais-system/contests-probes", |
| 43 | + "namespace": "nais-system", |
| 44 | + "ping": "nais-vakt", |
| 45 | + "prometheus": "nais-system/monitoring-nais-prometheus", |
| 46 | + "severity": "critical", |
| 47 | + "tenant": "nav", |
| 48 | + "tenant_cluster": "dev-gcp", |
| 49 | + "tenant_cluster_id": "nav-dev-gcp", |
| 50 | + }, |
| 51 | + "annotations": { |
| 52 | + "action": "Check logs for contests appliction", |
| 53 | + "consequence": "Kafka may be unavailable in cluster.", |
| 54 | + }, |
| 55 | + "startsAt": "2024-06-25T13:43:23.303Z", |
| 56 | + "endsAt": "2024-06-25T13:56:23.303Z", |
| 57 | + "generatorURL": "https://nais-prometheus.dev-gcp.nav.cloud.nais.io/graph?g0.expr=probe_success%7Binstance%3D~%22http%3A%2F%2Fcontests%2Fkafka%22%7D+%3D%3D+0&g0.tab=1", |
| 58 | + "fingerprint": "8184e4ed0380b9f7", |
| 59 | + } |
| 60 | + formatted = format_message(alert) |
| 61 | + assert formatted == "[RESOLVED] Kafka connectivity test failing in nav-dev-gcp%0aKafka may be unavailable in cluster." |
| 62 | + |
| 63 | +if __name__ == "__main__": |
| 64 | + test_index() |
| 65 | + TestTransformText().test_simple() |
| 66 | + TestTransformText().test_newline() |
| 67 | + TestFormatMessage().test_alert() |
| 68 | + print("All tests passed") |
0 commit comments