Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/units/model/post.py
blob: 655c08e1f469fae6b9bcb89efa6a20308cabdb5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/usr/bin/env python
# sugar-lint: disable

from __init__ import tests

from sugar_network import db
from sugar_network.client import Connection, keyfile
from sugar_network.model.context import Context
from sugar_network.model.post import Post
from sugar_network.toolkit.coroutine import this
from sugar_network.toolkit import http


class PostTest(tests.Test):

    def test_FindComments(self):
        directory = db.Volume('db', [Post])['post']

        directory.create({'guid': '1', 'context': '', 'type': 'post', 'title': {}, 'message': {}, 'comments': {
            '1': {'value': {'en': 'foo'}},
            }})
        directory.create({'guid': '2', 'context': '', 'type': 'post', 'title': {}, 'message': {}, 'comments': {
            '1': {'value': {'en': 'bar'}},
            }})
        directory.create({'guid': '3', 'context': '', 'type': 'post', 'title': {}, 'message': {}, 'comments': {
            '1': {'value': {'en': 'bar'}},
            '2': {'value': {'en': 'foo'}},
            }})
        directory.create({'guid': '4', 'context': '', 'type': 'post', 'title': {}, 'message': {}, 'comments': {
            '1': {'value': {'en': 'foo bar'}},
            }})

        self.assertEqual(
                ['1', '3', '4'],
                [i.guid for i in directory.find(query='foo')[0]])
        self.assertEqual(
                ['2', '3', '4'],
                [i.guid for i in directory.find(query='bar')[0]])
        self.assertEqual(
                ['1', '2', '3', '4'],
                [i.guid for i in directory.find(query='foo bar')[0]])

        self.assertEqual(
                ['1', '3', '4'],
                [i.guid for i in directory.find(query='comments:foo')[0]])

    def test_ShiftContextRating(self):
        volume = db.Volume('db', [Context, Post])
        this.volume = volume

        context = volume['context'].create({
            'type': 'activity',
            'title': {},
            'summary': {},
            'description': {},
            })
        self.assertEqual([0, 0], volume['context'][context]['rating'])

        volume['post'].create({
            'context': context,
            'type': 'post',
            'title': {},
            'message': {},
            })
        self.assertEqual([0, 0], volume['context'][context]['rating'])

        volume['post'].create({
            'context': context,
            'type': 'post',
            'title': {},
            'message': {},
            'vote': 0,
            })
        self.assertEqual([0, 0], volume['context'][context]['rating'])

        volume['post'].create({
            'context': context,
            'type': 'post',
            'title': {},
            'message': {},
            'vote': 1,
            })
        self.assertEqual([1, 1], volume['context'][context]['rating'])

        volume['post'].create({
            'context': context,
            'type': 'post',
            'title': {},
            'message': {},
            'vote': 2,
            })
        self.assertEqual([2, 3], volume['context'][context]['rating'])

    def test_ShiftTopicRating(self):
        volume = db.Volume('db2', [Context, Post])
        this.volume = volume

        context = volume['context'].create({
            'type': 'activity',
            'title': {},
            'summary': {},
            'description': {},
            })
        topic = volume['post'].create({
            'context': context,
            'type': 'post',
            'title': {},
            'message': {},
            })
        self.assertEqual([0, 0], volume['context'][context]['rating'])
        self.assertEqual([0, 0], volume['post'][topic]['rating'])

        volume['post'].create({
            'context': context,
            'topic': topic,
            'type': 'post',
            'title': {},
            'message': {},
            })
        self.assertEqual([0, 0], volume['context'][context]['rating'])
        self.assertEqual([0, 0], volume['post'][topic]['rating'])

        volume['post'].create({
            'context': context,
            'topic': topic,
            'type': 'post',
            'title': {},
            'message': {},
            'vote': 0,
            })
        self.assertEqual([0, 0], volume['context'][context]['rating'])
        self.assertEqual([0, 0], volume['post'][topic]['rating'])

        volume['post'].create({
            'context': context,
            'topic': topic,
            'type': 'post',
            'title': {},
            'message': {},
            'vote': 1,
            })
        self.assertEqual([0, 0], volume['context'][context]['rating'])
        self.assertEqual([1, 1], volume['post'][topic]['rating'])

        volume['post'].create({
            'context': context,
            'topic': topic,
            'type': 'post',
            'title': {},
            'message': {},
            'vote': 2,
            })
        self.assertEqual([0, 0], volume['context'][context]['rating'])
        self.assertEqual([2, 3], volume['post'][topic]['rating'])


if __name__ == '__main__':
    tests.main()