1
|
|
|
import json |
2
|
|
|
|
3
|
|
|
import pytest |
4
|
|
|
|
5
|
|
|
from flask_jsondash import db |
6
|
|
|
from flask_jsondash import settings |
7
|
|
|
from flask_jsondash import mongo_adapter |
8
|
|
|
|
9
|
|
|
|
10
|
|
|
def test_reformat_data(): |
11
|
|
|
c_id = 3 |
12
|
|
|
res = db.reformat_data(dict(), c_id) |
13
|
|
|
assert isinstance(res, dict) |
14
|
|
|
assert 'date' in res |
15
|
|
|
assert res.get('id') == c_id |
16
|
|
|
|
17
|
|
|
|
18
|
|
|
def test_format_charts(): |
19
|
|
|
data = {'module_': json.dumps(dict()), 'name': 'foo'} |
20
|
|
|
res = db.format_charts(data) |
21
|
|
|
assert isinstance(res, list) |
22
|
|
|
assert res != [] |
23
|
|
|
assert len(res) == 1 |
24
|
|
|
|
25
|
|
|
|
26
|
|
|
def test_format_charts_invalid(): |
27
|
|
|
data = {'Foo': json.dumps(dict())} |
28
|
|
|
res = db.format_charts(data) |
29
|
|
|
assert res == [] |
30
|
|
|
|
31
|
|
|
|
32
|
|
|
def test_default_dbname(): |
33
|
|
|
assert db.DB_NAME == 'mongo' |
34
|
|
|
|
35
|
|
|
|
36
|
|
|
def test_default_settings(): |
37
|
|
|
assert settings.DB_URI == 'localhost' |
38
|
|
|
assert settings.DB_PORT == 27017 |
39
|
|
|
assert settings.DB_NAME == 'charts' |
40
|
|
|
assert settings.DB_TABLE == 'views' |
41
|
|
|
assert settings.ACTIVE_DB == 'mongo' |
42
|
|
|
assert db.DB_NAME == settings.ACTIVE_DB |
43
|
|
|
|
44
|
|
|
|
45
|
|
|
def test_get_db_handler_mongo(): |
46
|
|
|
assert isinstance(db.get_db_handler(), mongo_adapter.Db) |
47
|
|
|
|
48
|
|
|
|
49
|
|
|
def test_get_db_handler_invalid(monkeypatch): |
50
|
|
|
monkeypatch.setattr(db, 'DB_NAME', 'invaliddb') |
51
|
|
|
with pytest.raises(NotImplementedError): |
52
|
|
|
db.get_db_handler() |
53
|
|
|
|