@@ -15,26 +15,45 @@ def valid_query(workspace: Workspace, user: User, authenticated_api_client: APIC
1515 """Create a fixture representing the response of a POST request for AQL queries."""
1616 workspace .set_user_permission (user , WorkspaceRoleChoice .READER )
1717 node_table = populated_table (workspace , False )
18- query_str = f'FOR document IN { node_table .name } RETURN document'
18+
19+ query_str = 'FOR document IN @@TABLE RETURN document'
20+ bind_vars = {'@TABLE' : node_table .name }
1921 r : Response = authenticated_api_client .post (
20- f'/api/workspaces/{ workspace .name } /queries/' , {'query' : query_str }, format = 'json'
22+ f'/api/workspaces/{ workspace .name } /queries/' ,
23+ {'query' : query_str , 'bind_vars' : bind_vars },
24+ format = 'json' ,
2125 )
2226 WorkspaceRole .objects .filter (workspace = workspace , user = user ).delete ()
23- return {'response' : r , 'query' : query_str , 'nodes' : list (node_table .get_rows ())}
27+
28+ return {
29+ 'response' : r ,
30+ 'query' : query_str ,
31+ 'bind_vars' : bind_vars ,
32+ 'nodes' : list (node_table .get_rows ()),
33+ }
2434
2535
2636@pytest .fixture
2737def mutating_query (workspace : Workspace , user : User , authenticated_api_client : APIClient ):
2838 """Create a fixture for a mutating AQL query that will have an error message post processing."""
2939 workspace .set_user_permission (user , WorkspaceRoleChoice .READER )
3040 node_table = populated_table (workspace , False )
31- fake = Faker ()
32- query_str = f"INSERT {{ 'name': { fake .pystr ()} }} INTO { node_table .name } "
41+
42+ query_str = 'INSERT {name: @DOCNAME} INTO @@TABLE'
43+ bind_vars = {'@TABLE' : node_table .name , 'DOCNAME' : Faker ().pystr ()}
3344 r : Response = authenticated_api_client .post (
34- f'/api/workspaces/{ workspace .name } /queries/' , {'query' : query_str }, format = 'json'
45+ f'/api/workspaces/{ workspace .name } /queries/' ,
46+ {'query' : query_str , 'bind_vars' : bind_vars },
47+ format = 'json' ,
3548 )
3649 WorkspaceRole .objects .filter (workspace = workspace , user = user ).delete ()
37- return {'response' : r , 'query' : query_str , 'nodes' : list (node_table .get_rows ())}
50+
51+ return {
52+ 'response' : r ,
53+ 'query' : query_str ,
54+ 'bind_vars' : bind_vars ,
55+ 'nodes' : list (node_table .get_rows ()),
56+ }
3857
3958
4059@pytest .mark .django_db
@@ -45,6 +64,7 @@ def test_query_rest_create(workspace: Workspace, user: User, valid_query):
4564 'id' : INTEGER_ID_RE ,
4665 'workspace' : workspace_re (workspace ),
4766 'query' : valid_query ['query' ],
67+ 'bind_vars' : valid_query ['bind_vars' ],
4868 'user' : user .username ,
4969 'error_messages' : None ,
5070 'status' : AqlQuery .Status .PENDING ,
@@ -63,6 +83,7 @@ def test_query_rest_create_mutating(workspace: Workspace, user: User, mutating_q
6383 'id' : INTEGER_ID_RE ,
6484 'workspace' : workspace_re (workspace ),
6585 'query' : mutating_query ['query' ],
86+ 'bind_vars' : mutating_query ['bind_vars' ],
6687 'user' : user .username ,
6788 'error_messages' : None ,
6889 'status' : AqlQuery .Status .PENDING ,
0 commit comments