예제 #1
0
파일: test_redis.py 프로젝트: zttzxh/sentry
    def test_frequency_table_import_export_destination_estimators(self):
        client = self.db.cluster.get_local_client_for_key("key")

        parameters = [64, 5, 5]

        CountMinScript(
            ["1:i", "1:e"],
            ["INCR"] + parameters + [
                1,
                "alpha",
                2,
                "beta",
                3,
                "gamma",
                4,
                "delta",
                5,
                "epsilon",
                6,
                "zeta",
                7,
                "eta",
                8,
                "theta",
                9,
                "iota",
            ],
            client=client,
        )

        CountMinScript(["2:i", "2:e"],
                       ["INCR"] + parameters + [5, "foo", 7, "bar", 9, "baz"],
                       client=client)

        assert client.exists("1:i")
        assert client.exists("1:e")
        assert client.exists("2:i")
        assert not client.exists("2:e")

        exports = CountMinScript(["2:i", "2:e"], ["EXPORT"] + parameters,
                                 client=client)

        assert len(exports) == 1

        CountMinScript(["1:i", "1:e"], ["IMPORT"] + parameters + [exports[0]],
                       client=client)

        assert client.exists("1:i")
        assert client.exists("1:e")

        assert CountMinScript(["1:i", "1:e"], ["RANKED"] + parameters,
                              client=client) == [
                                  [b"iota", b"9"],
                                  [b"baz", b"9"],
                                  [b"theta", b"8"],
                                  [b"eta", b"7"],
                                  [b"bar", b"7"],
                              ]
예제 #2
0
    def test_frequency_table_import_export_no_estimators(self):
        client = self.db.cluster.get_local_client_for_key('key')

        parameters = [64, 5, 10]

        CountMinScript(
            ['1:i', '1:e'],
            ['INCR'] + parameters + [
                1, 'foo',
                2, 'bar',
                3, 'baz',
            ],
            client=client,
        )

        CountMinScript(
            ['2:i', '2:e'],
            ['INCR'] + parameters + [
                1, 'alpha',
                2, 'beta',
                3, 'gamma',
                4, 'delta',
                5, 'epsilon',
                6, 'zeta',
                7, 'eta',
                8, 'theta',
                9, 'iota',
            ],
            client=client,
        )

        assert client.exists('1:i')
        assert not client.exists('1:e')
        assert client.exists('2:i')
        assert not client.exists('2:e')

        exports = CountMinScript(
            ['2:i', '2:e'],
            ['EXPORT'] + parameters,
            client=client,
        )

        assert len(exports) == 1

        CountMinScript(
            ['1:i', '1:e'],
            ['IMPORT'] + parameters + [exports[0]],
            client=client,
        )

        assert client.exists('1:i')
        assert client.exists('1:e')