# ** 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 # using Test using CaosDB @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 end