Completed
Push — master ( fb6031...636c5d )
by Chris
01:03
created

test_insert_dashboards()   A

Complexity

Conditions 4

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 4
c 1
b 0
f 1
dl 0
loc 9
rs 9.2
1
import json
2
3
from click.testing import CliRunner
4
5
from flask_jsondash import model_factories
6
from flask_jsondash.settings import CHARTS_CONFIG
7
8
9
def test_get_random_group():
10
    conf_vals = CHARTS_CONFIG.values()
11
    data = model_factories.get_random_group()
12
    assert isinstance(data, dict)
13
    assert 'charts' in data
14
    assert data in conf_vals
15
16
17
def test_get_random_chart():
18
    chart = model_factories.get_random_group()
19
    data = model_factories.get_random_chart(chart)
20
    assert isinstance(data, tuple)
21
22
23
def test_make_fake_dashboard():
24
    fdash = model_factories.make_fake_dashboard(name='Foo', max_charts=4)
25
    assert isinstance(fdash, dict)
26
    assert fdash.get('name') == 'Foo'
27
28
29
def test_make_fake_chart_data():
30
    chartdata = model_factories.make_fake_chart_data(name='Foo')
31
    chartconfig = json.loads(chartdata[1])
32
    assert isinstance(chartdata, tuple)
33
    assert isinstance(chartconfig, dict)
34
    assert chartconfig.get('name') == 'Foo'
35
36
37
def test_insert_dashboards(monkeypatch):
38
    records = []
39
    runner = CliRunner()
40
    args = ['--max-charts', 5, '--records', 5]
41
    _db = model_factories.adapter
42
    monkeypatch.setattr(_db, 'create', lambda *a, **kw: records.append(a))
43
    result = runner.invoke(model_factories.insert_dashboards, args)
44
    assert result.exit_code == 0
45
    assert len(records) == 5
46
47
48
def test_delete_all(monkeypatch):
49
    _db = model_factories.adapter
50
    monkeypatch.setattr(_db, 'delete_all', lambda *a, **kw: [])
51
    assert model_factories.delete_all() is None
52