def get(self, dashboard_id): try: source = read_file(self._base_dir, dashboard_id) return Dashboard(source, dashboard_id) except DocumentNotFound: raise DocumentNotFound( "There is no such dashboard: {}".format(dashboard_id))
def mock_dashboard(id): source = dashboard_source([ row_source("A", [panel_source(1, "AA"), panel_source(2, "AB")]), row_source("B", [panel_source(3, "BA"), panel_source(4, "BB")]), ]) return Dashboard(source, id)
def __init__(self): super().__init__() if DEFAULT not in self._resources.list(): source = { 'rows': [], 'title': DEFAULT, } dashboard = Dashboard(source, DEFAULT) self._resources.save(dashboard, DEFAULT)
def get(self, dashboard_id): try: source = self._call('GET', 'dashboards/db/{}'.format(dashboard_id)) except requests.HTTPError as exc: if exc.response.status_code == 404: raise DocumentNotFound( "There is no such dashboard: {}".format(dashboard_id)) raise return Dashboard(source['dashboard'], dashboard_id)
def get(self, dashboard_id): hits = self._search(doc_type=DASHBOARD_TYPE, _source=["dashboard"], body={'query': { 'match': { '_id': dashboard_id } }}) if not hits: raise DocumentNotFound( "There is no such dashboard: {}".format(dashboard_id)) source = json.loads(hits[0]['_source']['dashboard']) return Dashboard(source, dashboard_id)
def get(self, dashboard_id): query = """SELECT data FROM dashboard WHERE slug = %(slug)s""" result = self._execute(query, slug=dashboard_id) if not result: raise DocumentNotFound( "There is no such dashboard: {}".format(dashboard_id)) source = result[0][0] if isinstance(source, bytes): source = source.decode('utf-8') source = json.loads(source) return Dashboard(source, dashboard_id)
def test_save_dashboard(self): res = DummyResources() dashboard = Dashboard(dashboard_source(), 'new_dashboard') # Add new dashboard res.save(dashboard) self.assertEqual(res._storage.dashboard_id, 'new_dashboard') self.assertEqual(res._storage.dashboard.id, 'new_dashboard') # Replace dashboard res.save(dashboard, 'any_dashboard') self.assertEqual(res._storage.dashboard_id, 'any_dashboard') self.assertEqual(res._storage.dashboard.id, 'any_dashboard') # Add new dashboard with custom name res._storage.get.side_effect = DocumentNotFound res.save(dashboard, 'custom_dashboard') self.assertEqual(res._storage.dashboard_id, 'custom_dashboard') self.assertEqual(res._storage.dashboard.id, 'custom_dashboard')