kopia lustrzana https://github.com/bugout-dev/moonstream
74 wiersze
2.9 KiB
Python
74 wiersze
2.9 KiB
Python
import unittest
|
|
from urllib import parse
|
|
|
|
from .stream_queries import parse_query_string
|
|
|
|
|
|
class TestParseQueryString(unittest.TestCase):
|
|
def test_single_subscription_type(self):
|
|
q = "type:ethereum_blockchain"
|
|
query = parse_query_string(q)
|
|
self.assertListEqual(query.subscription_types, ["ethereum_blockchain"])
|
|
self.assertListEqual(query.subscriptions, [])
|
|
|
|
def test_multiple_subscription_types(self):
|
|
q = "type:ethereum_blockchain type:ethereum_whalewatch"
|
|
query = parse_query_string(q)
|
|
self.assertListEqual(
|
|
query.subscription_types, ["ethereum_blockchain", "ethereum_whalewatch"]
|
|
)
|
|
self.assertListEqual(query.subscriptions, [])
|
|
|
|
def test_single_subscription(self):
|
|
q = "sub:ethereum_blockchain:0xbb2569ca55552fb4c1d73ec536e06a620c3d3d66"
|
|
query = parse_query_string(q)
|
|
self.assertListEqual(query.subscription_types, [])
|
|
self.assertListEqual(
|
|
query.subscriptions,
|
|
[("ethereum_blockchain", "0xbb2569ca55552fb4c1d73ec536e06a620c3d3d66")],
|
|
)
|
|
|
|
def test_multiple_subscriptions(self):
|
|
q = "sub:ethereum_blockchain:from:0xbb2569ca55552fb4c1d73ec536e06a620c3d3d66 sub:ethereum_blockchain:to:0x2819c144d5946404c0516b6f817a960db37d4929 sub:ethereum_txpool:0x2819c144d5946404c0516b6f817a960db37d4929"
|
|
query = parse_query_string(q)
|
|
self.assertListEqual(query.subscription_types, [])
|
|
self.assertListEqual(
|
|
query.subscriptions,
|
|
[
|
|
(
|
|
"ethereum_blockchain",
|
|
"from:0xbb2569ca55552fb4c1d73ec536e06a620c3d3d66",
|
|
),
|
|
(
|
|
"ethereum_blockchain",
|
|
"to:0x2819c144d5946404c0516b6f817a960db37d4929",
|
|
),
|
|
("ethereum_txpool", "0x2819c144d5946404c0516b6f817a960db37d4929"),
|
|
],
|
|
)
|
|
|
|
def test_multiple_subscription_types_and_subscriptions(self):
|
|
q = "type:ethereum_whalewatch type:solana_blockchain sub:ethereum_blockchain:from:0xbb2569ca55552fb4c1d73ec536e06a620c3d3d66 sub:ethereum_blockchain:to:0x2819c144d5946404c0516b6f817a960db37d4929 sub:ethereum_txpool:0x2819c144d5946404c0516b6f817a960db37d4929"
|
|
query = parse_query_string(q)
|
|
self.assertListEqual(
|
|
query.subscription_types, ["ethereum_whalewatch", "solana_blockchain"]
|
|
)
|
|
self.assertListEqual(
|
|
query.subscriptions,
|
|
[
|
|
(
|
|
"ethereum_blockchain",
|
|
"from:0xbb2569ca55552fb4c1d73ec536e06a620c3d3d66",
|
|
),
|
|
(
|
|
"ethereum_blockchain",
|
|
"to:0x2819c144d5946404c0516b6f817a960db37d4929",
|
|
),
|
|
("ethereum_txpool", "0x2819c144d5946404c0516b6f817a960db37d4929"),
|
|
],
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|