Пример #1
0
    def test_can_average_city_population(self):
        City.objects.aggregate.group_by(
            City.state, City.city,
            Aggregation.sum(City.pop, alias="total_pop")).group_by(
                City.state,
                Aggregation.avg("total_pop",
                                alias="avg_pop")).fetch(callback=self.stop)

        results = self.wait()

        expect(results).not_to_be_null()
        expect(results).to_length(4)

        states = [result.state for result in results]

        expect(states).to_be_like(['ny', 'ca', 'wa', 'fl'])

        for state in results:
            expect(state.avg_pop).to_be_greater_than(2000000)
Пример #2
0
    def test_can_average_city_population(self):
        City.objects.aggregate.group_by(
            City.state,
            City.city,
            Aggregation.sum(City.pop, alias="total_pop")
        ).group_by(
            City.state,
            Aggregation.avg("total_pop", alias="avg_pop")
        ).fetch(callback=self.stop)

        results = self.wait()

        expect(results).not_to_be_null()
        expect(results).to_length(4)

        states = [result.state for result in results]

        expect(states).to_be_like(['ny', 'ca', 'wa', 'fl'])

        for state in results:
            expect(state.avg_pop).to_be_greater_than(2000000)
Пример #3
0
    def test_can_aggregate_city_data(self):
        City.objects.aggregate.group_by(
            City.state,
            Aggregation.sum(City.pop, alias="totalPop")
        ).match(
            totalPop__gte=1000 * 1000
        ).fetch(callback=self.stop)

        result = self.wait()

        expect(result).not_to_be_null()
        expect(result).to_length(4)
Пример #4
0
    def test_can_aggregate_number_of_documents(self):
        User.objects.aggregate.group_by(
            User.email,
            Aggregation.avg(
                User.number_of_documents,
                alias="number_of_documents")).fetch(callback=self.stop)

        result = self.wait()

        expect(result).not_to_be_null()
        expect(result).to_length(1)
        expect(result[0].email).to_equal('*****@*****.**')
        expect(result[0].number_of_documents).to_be_like(4950.0)
Пример #5
0
    def test_can_aggregate_with_unwind(self):
        User.objects.aggregate.unwind(User.list_items).group_by(
            User.email,
            User.list_items,
            Aggregation.avg(User.number_of_documents, alias="number_of_documents")
        ).fetch(callback=self.stop)

        result = self.wait()

        expect(result).not_to_be_null()
        expect(result).to_length(99)
        expect(result[0].email).to_equal('*****@*****.**')
        expect(result[0].list_items).to_be_numeric()
        expect(result[0].number_of_documents).to_be_numeric()
Пример #6
0
    def test_can_aggregate_number_of_documents(self):
        User.objects.aggregate.group_by(
            User.email,
            Aggregation.avg(User.number_of_documents, alias="number_of_documents")
        ).fetch(
            callback=self.stop
        )

        result = self.wait()

        expect(result).not_to_be_null()
        expect(result).to_length(1)
        expect(result[0].email).to_equal('*****@*****.**')
        expect(result[0].number_of_documents).to_be_like(4950.0)
Пример #7
0
    def test_can_aggregate_with_unwind(self):
        User.objects.aggregate.unwind(User.list_items).group_by(
            User.email, User.list_items,
            Aggregation.avg(
                User.number_of_documents,
                alias="number_of_documents")).fetch(callback=self.stop)

        result = self.wait()

        expect(result).not_to_be_null()
        expect(result).to_length(99)
        expect(result[0].email).to_equal('*****@*****.**')
        expect(result[0].list_items).to_be_numeric()
        expect(result[0].number_of_documents).to_be_numeric()