Newer
Older
# ** header v3.0
# This file is a part of the CaosDB Project.
#
# Copyright (C) 2021 Indiscale GmbH <info@indiscale.com>
# Copyright (C) 2021 Florian Spreckelsen <f.spreckelsen@indiscale.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
# ** end header
#
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
@testset "CaosDBUnitTests" begin
@testset "TestUtility" begin
if haskey(ENV, "SHELL")
shell_var = ENV["SHELL"]
else
shell_var = "default"
end
@test CaosDB.Utility.get_env_var("SHELL", "default") == shell_var
end
@testset "TestExceptions" begin
# In case of success, nothing is done
@test CaosDB.Exceptions.evaluate_return_code(Cint(0)) == nothing
# CaosDBExceptions are thrown for return codes > 0
@test_throws CaosDB.Exceptions.CaosDBException CaosDB.Exceptions.evaluate_return_code(
Cint(14),
)
@test_throws CaosDB.Exceptions.GenericCaosDBException CaosDB.Exceptions.evaluate_return_code(
Cint(14),
)
try
CaosDB.Exceptions.evaluate_return_code(Cint(14))
# fail if this doesn't throw an error
@test false
catch e
@test isa(e, CaosDB.Exceptions.GenericCaosDBException)
@test e.code == 14
end
# Return codes < 0 correspond to unfinished transactions and
# we expect messages to be returned.
@test CaosDB.Exceptions.evaluate_return_code(Cint(-1)) == nothing
@test_logs (
:info,
CaosDB.Exceptions.CaosDBMessage(
"The transaction is currently being executed.",
Cint(-1),
),
) CaosDB.Exceptions.evaluate_return_code(Cint(-1))
end