Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
C
CaosDB Python Integration Tests
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
caosdb
Software
CaosDB Python Integration Tests
Commits
4884074c
Verified
Commit
4884074c
authored
1 year ago
by
Timm Fitschen
Browse files
Options
Downloads
Patches
Plain Diff
TST: add test for new "page_length" parameter of the query
parent
b151872b
Branches
Branches containing commit
Tags
Tags containing commit
1 merge request
!65
TST: page_length parameter
Pipeline
#40916
passed with warnings
1 year ago
Stage: info
Stage: setup
Stage: cert
Stage: style
Stage: test
Changes
1
Pipelines
4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tests/test_query.py
+77
-0
77 additions, 0 deletions
tests/test_query.py
with
77 additions
and
0 deletions
tests/test_query.py
+
77
−
0
View file @
4884074c
...
@@ -1334,3 +1334,80 @@ def test_find_query_default_role():
...
@@ -1334,3 +1334,80 @@ def test_find_query_default_role():
db
.
administration
.
set_server_property
(
"
FIND_QUERY_DEFAULT_ROLE
"
,
"
asdf
"
)
db
.
administration
.
set_server_property
(
"
FIND_QUERY_DEFAULT_ROLE
"
,
"
asdf
"
)
with
raises
(
TransactionError
):
with
raises
(
TransactionError
):
assert
db
.
execute_query
(
"
FIND Test*
"
,
unique
=
True
).
id
==
rec
.
id
assert
db
.
execute_query
(
"
FIND Test*
"
,
unique
=
True
).
id
==
rec
.
id
def
test_query_paging
():
test_query
=
"
FIND RECORDTYPE TestRT*
"
# insert 20 entities
for
i
in
range
(
20
):
db
.
RecordType
(
f
"
TestRT
{
i
}
"
).
insert
()
assert
len
(
db
.
execute_query
(
test_query
))
==
20
# paging off
assert
isinstance
(
db
.
execute_query
(
test_query
,
page_length
=
0
),
db
.
Container
)
assert
isinstance
(
db
.
execute_query
(
test_query
,
page_length
=-
1
),
db
.
Container
)
assert
isinstance
(
db
.
execute_query
(
test_query
,
page_length
=
False
),
db
.
Container
)
assert
isinstance
(
db
.
execute_query
(
test_query
,
page_length
=
None
),
db
.
Container
)
assert
isinstance
(
db
.
execute_query
(
test_query
+
"
WITH name=TestRT0
"
,
page_length
=
10
,
unique
=
True
),
db
.
RecordType
)
assert
isinstance
(
db
.
execute_query
(
"
COUNT RECORDTYPE
"
,
page_length
=
10
),
int
)
# zero pages
assert
len
([
page
for
page
in
db
.
execute_query
(
test_query
+
"
WITH unmet_condition
"
,
page_length
=
109
)])
==
0
# two pages
assert
len
([
page
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
10
)])
==
2
assert
len
([
page
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
11
)])
==
2
assert
len
([
page
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
19
)])
==
2
# one page
assert
len
([
page
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
20
)])
==
1
assert
len
([
page
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
100
)])
==
1
# concat
assert
len
([
entity
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
10
)
for
entity
in
page
])
==
20
# concat zero pages
assert
len
([
entity
for
page
in
db
.
execute_query
(
test_query
+
"
WITH unmet_condition
"
,
page_length
=
10
)
for
entity
in
page
])
==
0
# this kind of update is allowed
for
entity
in
[
entity
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
10
)
for
entity
in
page
]:
entity
.
description
=
"
updated
"
entity
.
update
()
# as well as this
container
=
db
.
Container
().
extend
(
[
entity
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
10
)
for
entity
in
page
])
for
entity
in
container
:
entity
.
description
=
"
updated 2
"
container
.
update
()
# but not this
with
raises
(
db
.
exceptions
.
PagingConsistencyError
):
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
10
):
for
entity
in
page
:
entity
.
description
=
"
update not allowed
"
entity
.
update
()
# not ideal: the first page has been written:
pages
=
db
.
execute_query
(
test_query
,
page_length
=
10
)
for
entity
in
next
(
pages
):
assert
entity
.
description
==
"
update not allowed
"
for
entity
in
next
(
pages
):
assert
entity
.
description
==
"
updated 2
"
# the above pattern is ok if you don't write, tho
for
page
in
db
.
execute_query
(
test_query
,
page_length
=
10
):
for
entity
in
page
:
assert
entity
.
description
is
not
None
# don't: entity.update()
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment