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

test_count()   A

Complexity

Conditions 3

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 3
c 1
b 0
f 1
dl 0
loc 3
rs 10
1
import json
2
from datetime import datetime
3
4
from pymongo.cursor import Cursor as MongoCursor
5
6
7
def test_create(monkeypatch, adapter):
8
    monkeypatch.setattr(adapter.coll, 'insert', lambda *args, **kwargs: kwargs)
9
    assert adapter.create(data=dict(foo='bar')) is None
10
11
12
def test_create_none(adapter):
13
    assert adapter.create() is None
14
15
16
def test_count(monkeypatch, adapter):
17
    monkeypatch.setattr(adapter.coll, 'count', lambda *args, **kwargs: [])
18
    assert adapter.count() == []
19
20
21
def test_update_normal(monkeypatch, adapter):
22
    records = []
23
    monkeypatch.setattr(
24
        adapter.coll, 'update', lambda *args, **kwargs: records.append(args))
25
    adapter.update('foo-id', data=dict(name='foo'))
26
    assert records[0][0]['id'] == 'foo-id'
27
    assert records[0][1]['$set']['name'] == 'foo'
28
    assert records[0][1]['$set']['modules'] == []
29
    assert isinstance(records[0][1]['$set']['date'], datetime)
30
31
32
def test_update_format_charts(monkeypatch, adapter):
33
    records = []
34
    monkeypatch.setattr(
35
        adapter.coll, 'update', lambda *args, **kwargs: records.append(args))
36
    data = {
37
        'module_1': json.dumps(dict(name='chart-1')),
38
        'module_2': json.dumps(dict(name='chart-2')),
39
        'name': 'foo'
40
    }
41
    adapter.update('foo-id', data=data)
42
    assert records[0][0]['id'] == 'foo-id'
43
    assert records[0][1]['$set']['name'] == 'foo'
44
    assert len(records[0][1]['$set']['modules']) == 2
45
    assert 'module_1' in records[0][1]['$set'].keys()
46
    assert 'module_2' in records[0][1]['$set'].keys()
47
    assert isinstance(records[0][1]['$set']['date'], datetime)
48
49
50
def test_update_nothing(monkeypatch, adapter):
51
    monkeypatch.setattr(adapter.coll, 'update', lambda *args, **kwargs: kwargs)
52
    assert adapter.update('foobar') is None
53
54
55
def test_read_one(monkeypatch, adapter):
56
    records = [dict()]
57
    monkeypatch.setattr(
58
        adapter.coll, 'find_one', lambda *args, **kwargs: records)
59
    assert adapter.read(c_id='foo') == records
60
61
62
def test_read_all(monkeypatch, adapter):
63
    assert isinstance(adapter.read(), MongoCursor)
64
65
66
def test_delete_one(monkeypatch, adapter):
67
    monkeypatch.setattr(
68
        adapter.coll, 'delete_one', lambda *args, **kwargs: kwargs)
69
    assert adapter.delete(c_id='foo') is None
70
71
72
def test_delete_all(monkeypatch, adapter):
73
    monkeypatch.setattr(adapter.coll, 'remove', lambda *args, **kwargs: kwargs)
74
    assert adapter.delete_all() is None
75