Skip to content
Snippets Groups Projects

Grafana

Merged Martin Weise requested to merge 460-grafana-random-redirects into dev
4 files
+ 116
15
Compare changes
  • Side-by-side
  • Inline
Files
4
import unittest
from dbrepo.api.dto import Database, ColumnType, UserBrief, ContainerBrief, ImageBrief, View, ViewColumn, ColumnEnum
from grafana_client.client import GrafanaClientError
import dashboard
from clients.grafana_client import GrafanaClient
DASHBOARD_UID = 'covdb1'
req = Database(id="209acf92-5c9b-4633-ad99-113c86f6e948",
name="Test",
internal_name="test_tuw1",
owner=UserBrief(id="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", username="foo"),
contact=UserBrief(id="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", username="foo"),
exchange_name="dbrepo",
is_public=True,
is_schema_public=True,
is_dashboard_enabled=True,
dashboard_uid=DASHBOARD_UID,
container=ContainerBrief(id="7efe8b27-6cdc-4387-80e3-92ee28f4a7c5",
name="MariaDB",
internal_name="mariadb",
image=ImageBrief(id="f97791b4-baf4-4b18-8f7d-3084818e6549",
name="mariadb",
version="11.1.3",
default=True)),
views=[View(id='16f59403-4f3a-4c35-aa25-44dc72f97a3e',
name='Some View',
internal_name='some_view',
query='SELECT `id`, `name`, `created_at`, `yob`, `lap_pr`, `is_verified` FROM `some_table` WHERE `age` > 21',
query_hash='0b95f9c3f1a639c4bf5460207991f7925b685c4600c902e62f63f575f9975700',
database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
owner=UserBrief(id="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", username="foo"),
is_public=True,
is_schema_public=True,
initial_view=False,
columns=[ViewColumn(id='822a64b9-0ad4-4b00-960e-8c3c98366c99',
name='id',
internal_name='id',
database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
ord=0,
type=ColumnType.BIGINT,
is_null_allowed=False),
ViewColumn(id='45b99683-be27-4e14-9a0d-76e47a8400f2',
name='name',
internal_name='name',
ord=1,
database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
type=ColumnType.VARCHAR,
size=255,
is_null_allowed=False),
ViewColumn(id='a26c19ad-682b-4c3a-9064-74c1c5c98a60',
name='created_at',
internal_name='created_at',
ord=2,
database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
type=ColumnType.TIMESTAMP,
is_null_allowed=False),
ViewColumn(id='2cb8c249-4c09-4651-b987-e85b2d27cea0',
name='yob',
internal_name='yob',
ord=3,
database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
type=ColumnType.YEAR,
is_null_allowed=True),
ViewColumn(id='4649ed3f-db4d-44f3-a622-d9f57326805e',
name='lap_pr',
internal_name='lap_pr',
ord=4,
database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
type=ColumnType.TIME,
is_null_allowed=True),
ViewColumn(id='cc2b02cf-bac4-4ac7-b5e9-711ae3dc1ffe',
name='is_verified',
internal_name='is_verified',
ord=5,
database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
type=ColumnType.BOOL,
is_null_allowed=False),
ViewColumn(id='f8982e7e-7e6f-433a-8a08-0f4da6ee8b68',
name='gender',
internal_name='gender',
ord=6,
database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
type=ColumnType.ENUM,
enums=[ColumnEnum(id='d30908e7-17e1-4c95-874a-1e5d126a1f4a',
value='male'),
ColumnEnum(id='d225ba99-4169-470d-b497-3423b5574d0a',
value='female')],
is_null_allowed=False),
ViewColumn(id='82647def-bc83-4756-9b9d-d25d51b08b7f',
name='tags',
internal_name='tags',
ord=6,
database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
type=ColumnType.SET,
enums=[ColumnEnum(id='f39fcef1-a6c0-4877-9cc2-908fa1e4a44e',
value='vip')],
is_null_allowed=False)],
identifiers=[])])
class DashboardIntegrationTest(unittest.TestCase):
DASHBOARD_UID = 'covdb1'
def test_find_succeeds(self):
# mock
GrafanaClient().connect().dashboard.update_dashboard(dict(folderUid='',
overwrite=False,
dashboard=dict(uid=self.DASHBOARD_UID,
dashboard=dict(uid=DASHBOARD_UID,
title=f'Mock',
tags=['managed'],
timezone='browser',
@@ -21,8 +115,8 @@ class DashboardIntegrationTest(unittest.TestCase):
preload=True,
panels=[])))
# test
response = dashboard.find(self.DASHBOARD_UID)
self.assertEqual(self.DASHBOARD_UID, response['dashboard']['uid'])
response = dashboard.find(DASHBOARD_UID)
self.assertEqual(DASHBOARD_UID, response['dashboard']['uid'])
def test_find_not_found_fails(self):
# test
@@ -37,14 +131,14 @@ class DashboardIntegrationTest(unittest.TestCase):
def test_create_with_uid_succeeds(self):
# test
response = dashboard.create('some_database', self.DASHBOARD_UID)
self.assertEqual(self.DASHBOARD_UID, response['uid'])
response = dashboard.create('some_database', DASHBOARD_UID)
self.assertEqual(DASHBOARD_UID, response['uid'])
def test_create_uid_exists_fails(self):
# mock
GrafanaClient().connect().dashboard.update_dashboard(dict(folderUid='',
overwrite=False,
dashboard=dict(uid=self.DASHBOARD_UID,
dashboard=dict(uid=DASHBOARD_UID,
title=f'Mock',
tags=['managed'],
timezone='browser',
@@ -53,7 +147,7 @@ class DashboardIntegrationTest(unittest.TestCase):
panels=[])))
# test
try:
dashboard.create('some_database', self.DASHBOARD_UID)
dashboard.create('some_database', DASHBOARD_UID)
except GrafanaClientError:
pass
@@ -61,7 +155,7 @@ class DashboardIntegrationTest(unittest.TestCase):
# mock
GrafanaClient().connect().dashboard.update_dashboard(dict(folderUid='',
overwrite=False,
dashboard=dict(uid=self.DASHBOARD_UID,
dashboard=dict(uid=DASHBOARD_UID,
title=f'Mock',
tags=['managed'],
timezone='browser',
@@ -69,7 +163,7 @@ class DashboardIntegrationTest(unittest.TestCase):
preload=True,
panels=[])))
# test
dashboard.delete(self.DASHBOARD_UID)
dashboard.delete(DASHBOARD_UID)
def test_delete_not_exists_fails(self):
# test
@@ -82,7 +176,7 @@ class DashboardIntegrationTest(unittest.TestCase):
# mock
GrafanaClient().connect().dashboard.update_dashboard(dict(folderUid='',
overwrite=False,
dashboard=dict(uid=self.DASHBOARD_UID,
dashboard=dict(uid=DASHBOARD_UID,
title=f'Mock',
tags=['managed'],
timezone='browser',
@@ -90,4 +184,11 @@ class DashboardIntegrationTest(unittest.TestCase):
preload=True,
panels=[])))
# test
dashboard.delete(self.DASHBOARD_UID)
dashboard.update(req)
def test_update_not_exists_fails(self):
# test
try:
dashboard.update(req)
except GrafanaClientError:
pass
Loading