Esempio n. 1
0
    def test_group_count(self):
        q = Query()
        q.group('field', count=True)

        assert q._pipeline[-1] == {
            '$group': {
                '_id': '$field',
                'count': {
                    '$sum': 1
                }
            }
        }
Esempio n. 2
0
    def test_add_fields_set(self):
        q = Query()
        fields = {'field1', 'field2', 'field3'}
        q.project(fields)

        assert q._pipeline[-1] == {
            '$project': {
                'field1': 1,
                'field2': 1,
                'field3': 1
            }
        }
Esempio n. 3
0
    def test_group_list(self):
        q = Query()
        q.group(['field1', 'field2'])

        assert q._pipeline[-1] == {
            '$group': {
                '_id': {
                    'field1': '$field1',
                    'field2': '$field2'
                }
            }
        }
Esempio n. 4
0
    def test_group_str(self):
        q = Query()
        q.group("field")

        assert q._pipeline[-1] == {'$group': {"_id": "$field"}}
Esempio n. 5
0
    def test_out(self):
        q = Query()
        q.out('collection')

        assert q._pipeline[-1] == {'$out': 'collection'}
Esempio n. 6
0
    def test_add_fields_dict(self):
        q = Query()
        fields = {'field1': '$field1', 'field2': '$field2'}
        q.project(fields)

        assert q._pipeline[-1] == {'$project': fields}
Esempio n. 7
0
    def test_project_str(self):
        q = Query()
        q.project('name')

        assert q._pipeline[-1] == {'$project': {'name': 1}}
Esempio n. 8
0
    def test_add_new_field(self):
        q = Query()
        q.project([('name', 100)])

        assert q._pipeline[-1] == {'$project': {'name': {'$literal': 100}}}
Esempio n. 9
0
    def test_match_range(self):
        q = Query()
        q.match_range('field', lower=15, upper=20)

        assert q._pipeline[-1] == \
            {'$match': {'field': {'$gte': 15, '$lt': 20}}}
Esempio n. 10
0
    def test_match_neq(self):
        q = Query()
        q.match('key', 'value', False)

        assert q._pipeline[-1] == {'$match': {'key': {'$ne': 'value'}}}
Esempio n. 11
0
    def test_group_Group(self):
        g = Group().id('id')
        q = Query().group(g)

        assert q._pipeline[-1] == g.build()
Esempio n. 12
0
 def test_limit(self):
     q = Query()
     q.limit(5)
     assert q._pipeline[-1] == {'$limit': 5}