Skip to content

Commit 55bed28

Browse files
authored
Test writers are removed from RTs per database (#590)
* Test writers are removed from RTs per database * Fix bug in the stub server Conditional blocks didn't play nicely with repeating blocks.
1 parent 2d0b295 commit 55bed28

14 files changed

+318
-58
lines changed

boltstub/parsing.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,7 +1050,6 @@ def can_be_skipped(self, channel):
10501050

10511051

10521052
class ConditionalBlock(Block):
1053-
10541053
def __init__(self, conditions: List[str], blocks: List[Block],
10551054
line_number: int):
10561055
super().__init__(line_number)
@@ -1120,7 +1119,7 @@ def can_consume_after_reset(self, channel) -> bool:
11201119
block = self._probe_selection(channel, None)
11211120
if not block:
11221121
return False
1123-
return block.can_consume(channel)
1122+
return block.can_consume_after_reset(channel)
11241123
pass
11251124

11261125
def has_deterministic_end(self):
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
!: BOLT #VERSION#
2+
!: AUTO RESET
3+
!: ALLOW RESTART
4+
!: PY request = 0
5+
6+
C: HELLO {"scheme": "basic", "credentials": "c", "principal": "p", "user_agent": "007"#EXTR_HELLO_ROUTING_PROPS#}
7+
S: SUCCESS {"server": "#SERVER_AGENT#", "connection_id": "bolt-123456789"}
8+
*: RESET
9+
{*
10+
IF: request < 2
11+
{{
12+
C: RUN "CALL dbms.cluster.routing.getRoutingTable($context)" {"context": #ROUTINGCTX#} {"[mode]": "r"}
13+
S: SUCCESS {"fields": ["ttl", "servers"]}
14+
C: PULL_ALL
15+
S: RECORD [1000, [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]]
16+
SUCCESS {"type": "r"}
17+
PY: request += 1
18+
*: RESET
19+
}}
20+
*}
21+
?: GOODBYE
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
!: BOLT #VERSION#
2+
3+
A: HELLO {"{}": "*"}
4+
*: RESET
5+
6+
C: RUN "RETURN 1 AS n" {} {}
7+
S: SUCCESS {"fields": ["n"]}
8+
C: PULL_ALL
9+
S: RECORD [1]
10+
SUCCESS {"type": "r"}
11+
12+
*: RESET
13+
14+
C: BEGIN {}
15+
S: SUCCESS {}
16+
C: RUN "RETURN 1 AS n" {} {}
17+
S: FAILURE #FAILURE#
18+
{?
19+
C: PULL_ALL
20+
S: IGNORED
21+
?}
22+
C: RESET
23+
S: SUCCESS {}
24+
25+
*: RESET
26+
?: GOODBYE
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
!: BOLT #VERSION#
2+
3+
A: HELLO {"{}": "*"}
4+
*: RESET
5+
6+
C: RUN "RETURN 1 AS n" {} {}
7+
S: SUCCESS {"fields": ["n"]}
8+
C: PULL_ALL
9+
S: RECORD [1]
10+
SUCCESS {"type": "r"}
11+
12+
*: RESET
13+
14+
C: RUN "RETURN 1 AS n" {} {}
15+
S: FAILURE #FAILURE#
16+
{?
17+
C: PULL_ALL
18+
S: IGNORED
19+
?}
20+
C: RESET
21+
S: SUCCESS {}
22+
23+
*: RESET
24+
?: GOODBYE

tests/stub/routing/scripts/v3/writer_yielding_failure_on_run.script

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
!: BOLT #VERSION#
2+
!: AUTO RESET
3+
!: ALLOW RESTART
4+
!: PY request = 0
5+
6+
C: HELLO {"scheme": "basic", "credentials": "c", "principal": "p", "user_agent": "007", "routing": #ROUTINGCTX#}
7+
S: SUCCESS {"server": "#SERVER_AGENT#", "connection_id": "bolt-123456789"}
8+
*: RESET
9+
IF: request == 0
10+
{{
11+
C: RUN "CALL dbms.routing.getRoutingTable($context, $database)" {"context": #ROUTINGCTX#, "database": "adb"} {"[mode]": "r", "db": "system", "[bookmarks]": "*"}
12+
S: SUCCESS {"fields": ["ttl", "servers"]}
13+
C: PULL {"n": -1}
14+
S: RECORD [1000, [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]]
15+
SUCCESS {"type": "r"}
16+
PY: request = 1
17+
*: RESET
18+
{?
19+
C: RUN "CALL dbms.routing.getRoutingTable($context, $database)" {"context": #ROUTINGCTX#, "database": "bdb"} {"[mode]": "r", "db": "system", "[bookmarks]": "*"}
20+
S: SUCCESS {"fields": ["ttl", "servers"]}
21+
C: PULL {"n": -1}
22+
S: RECORD [1000, [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]]
23+
SUCCESS {"type": "r"}
24+
PY: request = 2
25+
*: RESET
26+
?}
27+
}}
28+
ELIF: request == 1
29+
{{
30+
C: RUN "CALL dbms.routing.getRoutingTable($context, $database)" {"context": #ROUTINGCTX#, "database": "bdb"} {"[mode]": "r", "db": "system", "[bookmarks]": "*"}
31+
S: SUCCESS {"fields": ["ttl", "servers"]}
32+
C: PULL {"n": -1}
33+
S: RECORD [1000, [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]]
34+
SUCCESS {"type": "r"}
35+
PY: request = 2
36+
*: RESET
37+
}}
38+
?: GOODBYE
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
!: BOLT #VERSION#
2+
!: AUTO RESET
3+
!: ALLOW RESTART
4+
!: PY request = 0
5+
6+
C: HELLO {"scheme": "basic", "credentials": "c", "principal": "p", "user_agent": "007", "routing": #ROUTINGCTX# , "[patch_bolt]": "*"}
7+
S: SUCCESS {"server": "#SERVER_AGENT#", "connection_id": "bolt-123456789"}
8+
*: RESET
9+
IF: request == 0
10+
{{
11+
C: ROUTE #ROUTINGCTX# "*" "adb"
12+
S: SUCCESS { "rt": { "ttl": 1000, "servers": [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]}}
13+
PY: request = 1
14+
*: RESET
15+
{?
16+
C: ROUTE #ROUTINGCTX# "*" "bdb"
17+
S: SUCCESS { "rt": { "ttl": 1000, "servers": [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]}}
18+
PY: request = 2
19+
*: RESET
20+
?}
21+
}}
22+
ELIF: request == 1
23+
{{
24+
C: ROUTE #ROUTINGCTX# "*" "bdb"
25+
S: SUCCESS { "rt": { "ttl": 1000, "servers": [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]}}
26+
PY: request = 2
27+
*: RESET
28+
}}
29+
?: GOODBYE
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
!: BOLT #VERSION#
2+
!: AUTO RESET
3+
!: ALLOW RESTART
4+
!: PY request = 0
5+
6+
C: HELLO {"scheme": "basic", "credentials": "c", "principal": "p", "user_agent": "007", "routing": #ROUTINGCTX#, "[patch_bolt]": "*"}
7+
S: SUCCESS {"server": "#SERVER_AGENT#", "connection_id": "bolt-123456789"}
8+
*: RESET
9+
IF: request == 0
10+
{{
11+
C: ROUTE #ROUTINGCTX# "*" {"db": "adb"}
12+
S: SUCCESS { "rt": { "ttl": 1000, "db": "adb", "servers": [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]}}
13+
PY: request = 1
14+
*: RESET
15+
{?
16+
C: ROUTE #ROUTINGCTX# "*" {"db": "bdb"}
17+
S: SUCCESS { "rt": { "ttl": 1000, "db": "bdb", "servers": [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]}}
18+
PY: request = 2
19+
*: RESET
20+
?}
21+
}}
22+
ELIF: request == 1
23+
{{
24+
C: ROUTE #ROUTINGCTX# "*" {"db": "bdb"}
25+
S: SUCCESS { "rt": { "ttl": 1000, "db": "bdb", "servers": [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]}}
26+
PY: request = 2
27+
*: RESET
28+
}}
29+
?: GOODBYE
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
!: BOLT #VERSION#
2+
!: AUTO RESET
3+
!: ALLOW RESTART
4+
!: PY request = 0
5+
6+
C: HELLO {"scheme": "basic", "credentials": "c", "principal": "p", "user_agent": "007", "routing": #ROUTINGCTX#}
7+
S: SUCCESS {"server": "#SERVER_AGENT#", "connection_id": "bolt-123456789"}
8+
*: RESET
9+
IF: request == 0
10+
{{
11+
C: ROUTE #ROUTINGCTX# "*" {"db": "adb"}
12+
S: SUCCESS { "rt": { "ttl": 1000, "db": "adb", "servers": [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]}}
13+
PY: request = 1
14+
*: RESET
15+
{?
16+
C: ROUTE #ROUTINGCTX# "*" {"db": "bdb"}
17+
S: SUCCESS { "rt": { "ttl": 1000, "db": "bdb", "servers": [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]}}
18+
PY: request = 2
19+
*: RESET
20+
?}
21+
}}
22+
ELIF: request == 1
23+
{{
24+
C: ROUTE #ROUTINGCTX# "*" {"db": "bdb"}
25+
S: SUCCESS { "rt": { "ttl": 1000, "db": "bdb", "servers": [{"addresses": ["#HOST#:9000"], "role":"ROUTE"}, {"addresses": ["#HOST#:9010", "#HOST#:9011"], "role":"READ"}, {"addresses": ["#HOST#:9020", "#HOST#:9021"], "role":"WRITE"}]}}
26+
PY: request = 2
27+
*: RESET
28+
}}
29+
?: GOODBYE
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
!: BOLT #VERSION#
2+
3+
A: HELLO {"{}": "*"}
4+
*: RESET
5+
6+
C: RUN "RETURN 1 AS n" {} {"db": "adb"}
7+
S: SUCCESS {"fields": ["n"]}
8+
C: PULL {"n": 1000}
9+
S: RECORD [1]
10+
SUCCESS {"type": "r"}
11+
12+
*: RESET
13+
14+
C: BEGIN {"db": "bdb"}
15+
S: SUCCESS {}
16+
C: RUN "RETURN 1 AS n" {} {}
17+
S: FAILURE #FAILURE#
18+
{?
19+
C: PULL {"n": 1000}
20+
S: IGNORED
21+
?}
22+
C: RESET
23+
S: SUCCESS {}
24+
25+
*: RESET
26+
?: GOODBYE

0 commit comments

Comments
 (0)