Beispiel #1
0
    def test_list_charts(self):
        req = dummy_request(self.session)
        dashboard = Dashboard(title='Dashboard Title')
        self.session.add(dashboard)
        dashboard2 = Dashboard(title='Dashboard Title 2')
        self.session.add(dashboard2)
        data_source = DataSource(name='Datasource')
        self.session.add(data_source)
        self.session.flush()

        req.json_body = {
            'title': 'Title',
            'dashboard_id': dashboard.id,
            'data_source_id': data_source.id,
            'unit': 'U'
        }
        chart = create_chart_view(req)

        req.json_body = {
            'title': 'Title 2',
            'dashboard_id': dashboard2.id,
            'data_source_id': data_source.id,
            'unit': 'U'
        }
        create_chart_view(req)

        req = dummy_request(self.session)
        req.params = {}
        charts = list_charts_view(req)
        self.assertEqual(len(charts), 2)

        req.params = {'dashboard_id': dashboard.id}
        charts = list_charts_view(req)
        self.assertEqual(len(charts), 1)
        self.assertEqual(charts[0]['id'], chart['id'])
Beispiel #2
0
    def test_list_single_stats(self):
        req = dummy_request(self.session)
        dashboard = Dashboard(title='Dashboard Title')
        self.session.add(dashboard)
        dashboard2 = Dashboard(title='Dashboard Title 2')
        self.session.add(dashboard2)
        data_source = DataSource(name='Data source')
        self.session.add(data_source)
        self.session.flush()

        req.json_body = {
            'title': 'Title 1',
            'dashboard_id': dashboard.id,
            'data_source_id': data_source.id,
            'query': 'query',
            'colors': '#eee,#000',
            'thresholds': '1'
        }
        single_stat = create_single_stat_view(req)
        req.json_body = {
            'title': 'Title 2',
            'dashboard_id': dashboard.id,
            'data_source_id': data_source.id,
            'query': 'query',
            'colors': '#eee,#000',
            'thresholds': '1'
        }
        create_single_stat_view(req)

        req.json_body = {
            'title': 'Title 3',
            'dashboard_id': dashboard2.id,
            'data_source_id': data_source.id,
            'query': 'query',
            'colors': '#eee,#000',
            'thresholds': '1'
        }
        create_single_stat_view(req)

        req = dummy_request(self.session)
        req.params = {}
        single_stats = list_single_stats_view(req)
        self.assertEqual(len(single_stats), 3)

        req.params = {'dashboard_id': dashboard.id}
        single_stats = list_single_stats_view(req)
        self.assertEqual(len(single_stats), 2)
        self.assertEqual(single_stats[0]['id'], single_stat['id'])
    def test_create_dashboard_in_collection(self):
        collection = Collection(title='Title')
        self.session.add(collection)
        self.session.flush()
        user = add_user(self.session)
        req = dummy_request(self.session)
        req.json_body = {
            'title': 'Title',
            'description': 'Description',
            'collection_id': collection.id,
            'users': [user.as_dict()]
        }
        resp = create_dashboard_view(req)
        self.assertEqual(resp['title'], 'Title')
        self.assertEqual(resp['collection_id'], collection.id)
        self.assertEqual(resp['index'], 0)
        self.assertEqual(resp['users'][0], user.as_dict())

        req.json_body = {
            'title': 'Title',
            'description': 'Description',
            'collection_id': collection.id
        }
        resp = create_dashboard_view(req)
        self.assertEqual(resp['index'], 1)
    def test_edit_dashboard_view(self):
        collection = Collection(title='Title')
        self.session.add(collection)
        self.session.flush()
        user = add_user(self.session)
        dashboard = add_dashboard(self.session, title='Test title')
        req = dummy_request(self.session)

        with self.assertRaises(exc.HTTPBadRequest):
            edit_dashboard_view(req)

        req.matchdict = {'id': dashboard.id}
        req.json_body = {
            'title': 'Edit title',
            'description': 'Description',
            'collection_id': collection.id,
            'type': 'new',
            'content': '<h1>Hello world!</h1>',
            'users': [user.as_dict()]
        }
        dashboard = edit_dashboard_view(req)
        self.assertEqual(dashboard['title'], 'Edit title')
        self.assertEqual(dashboard['description'], 'Description')
        self.assertEqual(dashboard['type'], 'new')
        self.assertEqual(dashboard['content'], '<h1>Hello world!</h1>')
        self.assertEqual(dashboard['users'][0], user.as_dict())
    def test_list_dashboards_view(self):
        user = add_user(self.session)
        self.config.testing_securitypolicy(userid=user.id, permissive=True)
        add_dashboard(self.session, title='Dashboard 1')
        add_dashboard(self.session, title='Dashboard 2')
        add_dashboard(self.session, title='Dashboard 3', users=[user])

        collection = Collection(title='Title')
        self.session.add(collection)
        self.session.flush()
        add_dashboard(self.session,
                      title='Dashboard 4',
                      collection_id=collection.id)
        add_dashboard(self.session,
                      title='Dashboard 5',
                      collection_id=collection.id,
                      users=[user])
        req = dummy_request(self.session)
        req.params = {}
        dashboards = list_dashboards_view(req)
        self.assertEqual(len(dashboards), 5)

        req.params = {'collection_id': None}
        dashboards = list_dashboards_view(req)
        self.assertEqual(len(dashboards), 3)

        req.params = {'collection_id': collection.id}
        dashboards = list_dashboards_view(req)
        self.assertEqual(len(dashboards), 2)

        req.params = {'user_id': True}
        dashboards = list_dashboards_view(req)
        self.assertEqual(len(dashboards), 2)
Beispiel #6
0
    def test_get_chart(self):
        req = dummy_request(self.session)
        dashboard = Dashboard(title='Dashboard Title')
        self.session.add(dashboard)
        data_source = DataSource(name='Datasource')
        self.session.add(data_source)
        self.session.flush()

        with self.assertRaises(exc.HTTPBadRequest):
            get_chart_view(req)

        with self.assertRaises(exc.HTTPNotFound):
            req.matchdict = {'id': 100}
            get_chart_view(req)

        req.json_body = {
            'title': 'Title',
            'dashboard_id': dashboard.id,
            'data_source_id': data_source.id,
            'unit': 'U'
        }

        chart = create_chart_view(req)
        chart_id = chart['id']
        req.matchdict = {'id': chart_id}

        chart = get_chart_view(req)
        self.assertEqual(chart_id, chart['id'])
Beispiel #7
0
    def test_get_single_stat(self):
        req = dummy_request(self.session)
        dashboard = Dashboard(title='Dashboard Title')
        self.session.add(dashboard)
        data_source = DataSource(name='Data source')
        self.session.add(data_source)
        self.session.flush()

        with self.assertRaises(exc.HTTPBadRequest):
            get_single_stat_view(req)

        with self.assertRaises(exc.HTTPNotFound):
            req.matchdict = {'id': 100}
            get_single_stat_view(req)

        req.json_body = {
            'title': 'Title',
            'dashboard_id': dashboard.id,
            'data_source_id': data_source.id,
            'query': 'query',
            'colors': '#eee,#000',
            'thresholds': '1'
        }

        single_stat = create_single_stat_view(req)
        single_stat_id = single_stat['id']
        req.matchdict = {'id': single_stat_id}

        single_stat = get_single_stat_view(req)
        self.assertEqual(single_stat_id, single_stat['id'])
Beispiel #8
0
    def test_delete_chart(self):
        req = dummy_request(self.session)
        dashboard = Dashboard(title='Dashboard Title')
        self.session.add(dashboard)
        data_source = DataSource(name='Datasource')
        self.session.add(data_source)
        self.session.flush()

        req.json_body = {
            'title': 'Title',
            'dashboard_id': dashboard.id,
            'data_source_id': data_source.id,
            'unit': 'U'
        }
        chart = create_chart_view(req)

        with self.assertRaises(exc.HTTPNotFound):
            req.matchdict = {'id': 0}
            delete_chart(req)

        req.matchdict = {"id": chart['id']}
        delete_chart(req)

        with self.assertRaises(exc.HTTPNotFound):
            get_chart_view(req)
Beispiel #9
0
    def test_list_queries(self):
        datasource = DataSource(name='datasource')
        self.session.add(datasource)
        dash = add_dashboard(self.session, 'Dash', 'Dashboard')
        dash2 = add_dashboard(self.session, 'Dash2', 'Dashboard')
        self.session.add(
            Query(name='Query',
                  query='query string',
                  dashboard_id=dash.id,
                  data_source_id=datasource.id))
        self.session.add(
            Query(name='Query2',
                  query='query string',
                  dashboard_id=dash.id,
                  data_source_id=datasource.id))
        self.session.add(
            Query(name='Query3',
                  query='query',
                  dashboard_id=dash2.id,
                  data_source_id=datasource.id))

        req = dummy_request(self.session)
        req.params = {}
        resp = list_queries_view(req)
        self.assertEqual(len(resp), 3)

        req.matchdict = {'dashboard_id': dash.id}
        resp = list_queries_view(req)
        self.assertEqual(len(resp), 2)
Beispiel #10
0
    def test_get_query(self):
        datasource = DataSource(name='datasource')
        self.session.add(datasource)
        dash = add_dashboard(self.session, 'Dash', 'Dashboard')
        query = Query(name='Query',
                      query='query string',
                      dashboard_id=dash.id,
                      data_source_id=datasource.id)
        self.session.add(query)
        self.session.flush()
        req = dummy_request(self.session)
        req.matchdict = {}

        with self.assertRaises(exc.HTTPBadRequest):
            get_query_view(req)

        with self.assertRaises(exc.HTTPNotFound):
            req.matchdict['id'] = 100
            get_query_view(req)

        req.matchdict['id'] = query.id
        resp = get_query_view(req)

        self.assertEqual(resp['id'], query.id)
        self.assertEqual(resp['name'], 'Query')
    def test_edit_collection(self):
        user1 = add_user(self.session, role=User, email='*****@*****.**', firstname='User1')
        user2 = add_user(self.session, role=User, email='*****@*****.**', firstname='User2')

        collection = add_collection(self.session, 'Collection', 'Description', users=[user1])
        self.assertEqual(collection.users[0], user1)

        req = dummy_request(self.session)
        req.matchdict = {}

        with self.assertRaises(exc.HTTPBadRequest):
            req.json_body = {}
            edit_collection(req)
        with self.assertRaises(exc.HTTPNotFound):
            req.matchdict['id'] = 100
            req.json_body = {'title': 'Edited title', 'description': 'Edited description', 'users': [user2.as_dict()]}
            edit_collection(req)
        with self.assertRaises(exc.HTTPBadRequest):
            req.matchdict['id'] = collection.id
            req.json_body = {'description': 'Description'}
            edit_collection(req)

        req.json_body = {'title': 'Edited title', 'description': 'Edited description', 'users': [user2.as_dict()]}
        resp = edit_collection(req)
        self.assertEqual(resp['title'], 'Edited title')
        self.assertEqual(resp['users'][0], user2.as_dict())
Beispiel #12
0
    def test_get_user(self):
        user = add_user(self.session,
                        role=UserRole,
                        email='*****@*****.**',
                        firstname='User')
        user2 = add_user(self.session,
                         role=UserRole,
                         email='*****@*****.**',
                         firstname='User')
        admin = add_user(self.session,
                         role=Administrator,
                         email='*****@*****.**',
                         firstname='Admin')
        req = dummy_request(self.session)
        req.matchdict = {}

        with self.assertRaises(exc.HTTPBadRequest):
            get_user_view(req)
        req.matchdict['id'] = user.id
        self.config.testing_securitypolicy(userid=user2.id, permissive=True)
        with self.assertRaises(exc.HTTPForbidden):
            get_user_view(req)
        self.config.testing_securitypolicy(userid=admin.id, permissive=True)
        req.matchdict['id'] = 100
        with self.assertRaises(exc.HTTPNotFound):
            get_user_view(req)

        req.matchdict['id'] = user.id
        resp = get_user_view(req)
        self.assertEqual(resp, user.as_dict())
Beispiel #13
0
    def test_create_user(self):
        req = dummy_request(self.session)
        req.json_body = {}

        with self.assertRaises(exc.HTTPBadRequest):
            create_user(req)
        req.json_body = {'email': 'user@email'}
        with self.assertRaises(exc.HTTPBadRequest):
            create_user(req)
        req.json_body = {
            'email': 'user@email',
            'firstname': 'Name',
            'surname': 'Surname'
        }
        with self.assertRaises(exc.HTTPBadRequest):
            create_user(req)

        req.json_body = {
            'email': 'user@email',
            'firstname': 'Name',
            'surname': 'Surname',
            'role': 'User',
            'telephone': '01235456',
            'address': 'address',
            'password': '******'
        }
        resp = create_user(req)
        self.assertIsNotNone(resp['id'])
        self.assertEqual(resp['email'], 'user@email')
        self.assertEqual(resp['role'], 'User')
 def setUp(self):
     super(TestResetPassword, self).setUp()
     self.config = pyramid_testing.setUp()
     self.config.include('pyramid_mailer.testing')
     self.config.include('pyramid_jinja2')
     self.request = dummy_request(self.session)
     self.request.registry.settings['izinto.app.secret'] = 'testsecret'
     add_roles_and_permissions(self.session)
    def test_paste_dashboard_view(self):
        collection = Collection(title='Collection 1')
        self.session.add(collection)
        self.session.flush()
        collection_id = collection.id
        collection2 = Collection(title='Collection 2')
        self.session.add(collection2)
        self.session.flush()
        collection2_id = collection2.id
        data_source = DataSource(name='Data source')
        self.session.add(data_source)
        self.session.flush()

        user = add_user(self.session)
        dashboard = add_dashboard(self.session,
                                  title='Test title',
                                  collection_id=collection.id,
                                  users=[user])
        dashboard_id = dashboard.id
        self.session.add(
            Variable(name='Variable', value='V', dashboard_id=dashboard.id))
        self.session.add(
            Chart(title='Chart',
                  data_source_id=data_source.id,
                  dashboard_id=dashboard.id))
        self.session.add(
            Chart(title='Chart',
                  data_source_id=data_source.id,
                  dashboard_id=dashboard.id))
        self.session.add(
            SingleStat(title='Single stat',
                       data_source_id=data_source.id,
                       dashboard_id=dashboard_id))
        self.session.add(
            Query(name="Query",
                  query="query",
                  dashboard_id=dashboard.id,
                  data_source_id=data_source.id))
        self.session.flush()

        req = dummy_request(self.session)
        req.json_body = {}
        with self.assertRaises(exc.HTTPBadRequest):
            paste_dashboard_view(req)

        req.matchdict = {'id': dashboard_id}
        req.json_body = {'collection_id': collection_id}
        dashboard = paste_dashboard_view(req)
        self.assertEqual(dashboard['title'], 'Copy of Test title')
        self.assertEqual(len(dashboard['variables']), 1)

        req.matchdict = {'id': dashboard_id}
        req.json_body = {'collection_id': collection2_id}
        dashboard = paste_dashboard_view(req)
        self.assertEqual(dashboard['title'], 'Test title')

        dashboard = self.session.query(Dashboard).get(dashboard['id'])
        self.assertEqual(dashboard.queries[0].name, "Query")
    def test_delete_dashboard_view(self):
        dashboard = add_dashboard(self.session, title='Dashboard')
        req = dummy_request(self.session)
        req.matchdict = {'id': dashboard.id}

        delete_dashboard_view(req)

        with self.assertRaises(exc.HTTPNotFound):
            get_dashboard_view(req)
 def test_get_content_view(self):
     content = b'<html>hello content!</html>'
     dashboard = Dashboard(title='Get Dashboard Content', content=content)
     self.session.add(dashboard)
     self.session.flush()
     req = dummy_request(self.session)
     req.matchdict = {'id': dashboard.id}
     response = get_content_view(req)
     self.assertEqual(response.body, content)
    def test_get_dashboard_view(self):
        dashboard = add_dashboard(self.session, title='Test title')
        req = dummy_request(self.session)

        with self.assertRaises(exc.HTTPBadRequest):
            get_dashboard_view(req)

        req.matchdict = {'id': dashboard.id}
        dashboard = get_dashboard_view(req)
        self.assertEqual(dashboard['title'], 'Test title')
 def test_edit_content_view(self):
     dashboard = Dashboard(title='New Dashboard Content')
     self.session.add(dashboard)
     self.session.flush()
     req = dummy_request(self.session)
     req.matchdict = {'id': dashboard.id}
     content = b'<html>hello content!</html>'
     req.json_body = {'content': content}
     response = edit_content_view(req)
     self.assertEqual(response.body, content)
    def test_list_dashboard_view_view(self):
        self.session.add(DashboardView(name='Day', icon='day'))
        self.session.add(DashboardView(name='Month', icon='month'))
        self.session.add(DashboardView(name='Year', icon='year'))
        self.session.flush()

        req = dummy_request(self.session)
        req.params = {}
        dashboard_views = list_dashboard_view_items(req)
        self.assertEqual(len(dashboard_views), 3)
        self.assertEqual(dashboard_views[0]['name'], 'Day')
Beispiel #21
0
    def test_reorder_charts(self):
        req = dummy_request(self.session)
        dashboard = Dashboard(title='Dashboard Title')
        self.session.add(dashboard)
        data_source = DataSource(name='Datasource')
        self.session.add(data_source)
        self.session.flush()

        req.json_body = {
            'title': 'Title',
            'dashboard_id': dashboard.id,
            'data_source_id': data_source.id,
            'unit': 'U'
        }
        chart = create_chart_view(req)
        req.json_body = {
            'title': 'Title 2',
            'dashboard_id': dashboard.id,
            'data_source_id': data_source.id,
            'unit': 'U'
        }
        create_chart_view(req)

        with self.assertRaises(exc.HTTPNotFound):
            req.matchdict = {'id': 100}
            req.json_body = {'dashboard_id': dashboard.id, 'index': 1}
            reorder_chart_view(req)

        req = dummy_request(self.session)
        req.params = {}

        charts = list_charts_view(req)
        self.assertEqual(charts[0]['id'], chart['id'])

        req.matchdict = {'id': chart['id']}
        req.json_body = {'dashboard_id': dashboard.id, 'index': 1}
        reorder_chart_view(req)
        charts = list_charts_view(req)
        self.assertEqual(charts[1]['id'], chart['id'])
        self.assertEqual(charts[1]['index'], 1)
        self.assertEqual(charts[0]['index'], 0)
    def test_reorder_dashboards_view(self):
        req = dummy_request(self.session)
        collection = Collection(title='Collection')
        self.session.add(collection)
        self.session.flush()
        collection_id = collection.id

        req.json_body = {
            'title': 'Dashboard 1',
            'collection_id': collection_id
        }
        dashboard = create_dashboard_view(req)
        req.json_body = {
            'title': 'Dashboard 2',
            'collection_id': collection_id
        }
        create_dashboard_view(req)
        req.json_body = {
            'title': 'Dashboard 3',
            'collection_id': collection_id
        }
        create_dashboard_view(req)

        with self.assertRaises(exc.HTTPNotFound):
            req.matchdict = {'id': 100}
            req.json_body = {'collection_id': collection_id, 'index': 1}
            reorder_dashboard_view(req)

        req = dummy_request(self.session)
        req.params = {'collection_id': collection_id}

        dashboards = list_dashboards_view(req)
        self.assertEqual(dashboards[0]['index'], 0)
        self.assertEqual(dashboards[0]['id'], dashboard['id'])

        req.matchdict = {'id': dashboard['id']}
        req.json_body = {'collection_id': collection_id, 'index': 1}
        reorder_dashboard_view(req)
        dashboards = list_dashboards_view(req)
        self.assertEqual(dashboards[1]['index'], 1)
        self.assertEqual(dashboards[1]['id'], dashboard['id'])
    def test_delete_collection(self):
        collection = add_collection(self.session, 'Collection', 'Description')
        collection_id = collection.id

        req = dummy_request(self.session)
        with self.assertRaises(exc.HTTPNotFound):
            req.matchdict = {}
            delete_collection(req)

        req.matchdict['id'] = collection_id
        delete_collection(req)

        with self.assertRaises(exc.HTTPNotFound):
            get_collection_view(req)
Beispiel #24
0
    def test_delete_variable(self):
        dash = add_dashboard(self.session, 'Dash', 'Dashboard')
        variable = Variable(name='Variable', value='5', dashboard_id=dash.id)
        self.session.add(variable)
        req = dummy_request(self.session)

        with self.assertRaises(exc.HTTPNotFound):
            req.matchdict = {'id': 100}
            delete_variable_view(req)

        req.matchdict['id'] = variable.id
        delete_variable_view(req)

        with self.assertRaises(exc.HTTPNotFound):
            delete_variable_view(req)
Beispiel #25
0
    def test_edit_query(self):
        datasource = DataSource(name='datasource')
        self.session.add(datasource)
        dash = add_dashboard(self.session, 'Dash', 'Dashboard')
        query = Query(name='Query',
                      query='query string',
                      dashboard_id=dash.id,
                      data_source_id=datasource.id)
        self.session.add(
            Query(name='Query2',
                  query='query string 2',
                  dashboard_id=dash.id,
                  data_source_id=datasource.id))
        self.session.add(query)
        self.session.flush()

        req = dummy_request(self.session)
        req.matchdict = {}
        req.json_body = {}
        with self.assertRaises(exc.HTTPBadRequest):
            edit_query_view(req)
        req.matchdict['id'] = 100
        req.json_body = {'name': 'Edited name'}
        with self.assertRaises(exc.HTTPNotFound):
            edit_query_view(req)
        req.matchdict['id'] = query.id
        with self.assertRaises(exc.HTTPBadRequest):
            edit_query_view(req)
        req.json_body = {'query': 'query string'}
        with self.assertRaises(exc.HTTPBadRequest):
            edit_query_view(req)
        req.json_body = {
            'name': 'Query2',
            'query': 'query string',
            'dashboard_id': dash.id
        }
        with self.assertRaises(exc.HTTPBadRequest):
            edit_query_view(req)

        req.json_body = {
            'name': 'Edited name',
            'query': 'query string',
            'dashboard_id': dash.id,
            'data_source_id': datasource.id
        }
        resp = edit_query_view(req)
        self.assertEqual(resp['name'], 'Edited name')
        self.assertEqual(resp['dashboard_id'], dash.id)
Beispiel #26
0
    def test_list_variables(self):
        dash = add_dashboard(self.session, 'Dash', 'Dashboard')
        self.session.add(
            Variable(name='Variable', value='1', dashboard_id=dash.id))
        self.session.add(
            Variable(name='Variable2', value='2', dashboard_id=dash.id))
        self.session.add(
            Variable(name='Variable3', value='3', dashboard_id=dash.id))

        req = dummy_request(self.session)
        req.params = {}
        resp = list_variables_view(req)
        self.assertEqual(len(resp), 3)

        req.params = {'value': '1'}
        resp = list_variables_view(req)
        self.assertEqual(len(resp), 1)
Beispiel #27
0
    def test_create_variable(self):
        dash = add_dashboard(self.session, 'Dash', 'Dashboard')
        req = dummy_request(self.session)
        req.json_body = {}
        with self.assertRaises(exc.HTTPBadRequest):
            create_variable_view(req)

        req.json_body = {
            'name': 'Variable',
            'value': '5',
            'dashboard_id': dash.id
        }
        variable = create_variable_view(req)

        self.assertIsNotNone(variable['id'])
        self.assertEqual(variable['name'], 'Variable')
        self.assertEqual(variable['dashboard_id'], dash.id)
Beispiel #28
0
    def test_copy_chart(self):
        req = dummy_request(self.session)
        dashboard_view = DashboardView(name='Dashboard View', icon='icon')
        self.session.add(dashboard_view)
        dashboard1 = Dashboard(title='Dashboard Title 1')
        self.session.add(dashboard1)
        dashboard2 = Dashboard(title='Dashboard Title 2')
        self.session.add(dashboard2)
        data_source = DataSource(name='Datasource')
        self.session.add(data_source)
        self.session.flush()

        req.json_body = {
            'title': 'Title',
            'dashboard_id': dashboard1.id,
            'data_source_id': data_source.id,
            'unit': 'U',
            'group_by': [{
                'dashboard_view_id': dashboard_view.id,
                'value': 1
            }]
        }

        chart = create_chart_view(req)
        chart_id = chart['id']

        req.json_body = {}
        with self.assertRaises(exc.HTTPBadRequest):
            paste_chart_view(req)

        req.matchdict = {'id': chart_id}
        req.json_body = {'dashboard_id': dashboard1.id}
        chart = paste_chart_view(req)

        req.matchdict = {'id': chart['id']}
        chart = get_chart_view(req)
        self.assertEqual(chart['title'], 'Copy of Title')

        req.matchdict = {'id': chart_id}
        req.json_body = {'dashboard_id': dashboard2.id}
        chart = paste_chart_view(req)

        req.matchdict = {'id': chart['id']}
        chart = get_chart_view(req)
        self.assertEqual(chart['title'], 'Title')
    def test_create_collection(self):
        admin = add_user(self.session, role=Administrator, firstname='Admin')
        user1 = add_user(self.session, role=User, email='*****@*****.**', firstname='User1')
        self.config.testing_securitypolicy(userid=admin.id, permissive=True)

        req = dummy_request(self.session)
        req.json_body = {}
        with self.assertRaises(exc.HTTPBadRequest):
            create_collection(req)

        req.json_body = {'title': 'Collection',
                         'description': 'Description',
                         'users': [user1.as_dict()]}
        collection = create_collection(req)

        self.assertIsNotNone(collection['id'])
        self.assertEqual(collection['title'], 'Collection')
        self.assertEqual(len(collection['users']), 2)
    def test_create_dashboard(self):
        req = dummy_request(self.session)
        req.json_body = {'description': 'Description'}

        with self.assertRaises(exc.HTTPBadRequest):
            create_dashboard_view(req)

        req.json_body = {
            'title': 'Title',
            'description': 'Description',
            'type': 'new',
            'content': '<h1>Hello world!</h1>'
        }
        resp = create_dashboard_view(req)
        self.assertEqual(resp['title'], 'Title')
        self.assertEqual(resp['description'], 'Description')
        self.assertEqual(resp['type'], 'new')
        self.assertEqual(resp['content'], '<h1>Hello world!</h1>')