Skip to content
Snippets Groups Projects
Commit 9ea4ae7e authored by Daniel Hornung's avatar Daniel Hornung
Browse files

ENH: Tests for queries.

parent bd0939a3
Branches
Tags
1 merge request!2Enhanced functionality testing
Pipeline #11858 failed
...@@ -11,7 +11,7 @@ COPY . /caosdb-octaveinttest ...@@ -11,7 +11,7 @@ COPY . /caosdb-octaveinttest
WORKDIR /caosdb-octaveinttest WORKDIR /caosdb-octaveinttest
RUN rm -rf .git RUN rm -rf .git
COPY .docker/caosdb-client.json /caosdb-client.json COPY .docker/caosdb_client.json /caosdb_client.json
# build and install octave-lib # build and install octave-lib
WORKDIR /caosdb-octavelib WORKDIR /caosdb-octavelib
......
File moved
# -*- mode:conf; -*-
# See https://florianschanda.github.io/miss_hit/style_checker.html
line_length: 100
regex_function_name: "[a-z]+(_[a-z]+)*"
suppress_rule: "whitespace_comments"
tab_width: 2
...@@ -17,7 +17,10 @@ ...@@ -17,7 +17,10 @@
% along with this program. If not, see <https://www.gnu.org/licenses/>. % along with this program. If not, see <https://www.gnu.org/licenses/>.
pkg load caosdb; pkg load caosdb;
test_result = moxunit_runtests("-verbose", "test_caosdb.m");
if not(test_result) all_tests = true;
all_tests &= moxunit_runtests("-verbose", "test_caosdb.m");
if not(all_tests)
exit(1); exit(1);
end end
...@@ -63,7 +63,7 @@ function test_retrieve_single() ...@@ -63,7 +63,7 @@ function test_retrieve_single()
c = Caosdb(); c = Caosdb();
% Retrieve a single entity % Retrieve a single entity
violin = c.retrieve("120"){1}; violin = c.retrieve_by_id("120"){1};
% Check content % Check content
assertEqual(violin.name, "Sherlock Holmes' violin"); assertEqual(violin.name, "Sherlock Holmes' violin");
...@@ -82,8 +82,8 @@ end ...@@ -82,8 +82,8 @@ end
function test_retrieve_multiple() function test_retrieve_multiple()
% Retrieve two entities % Retrieve two entities
c = Caosdb(); c = Caosdb();
violin = c.retrieve("120"){1}; violin = c.retrieve_by_id("120"){1};
collection = c.retrieve({"120", "119"}); collection = c.retrieve_by_id({"120", "119"});
assertEqual(length(collection), 2); assertEqual(length(collection), 2);
assertEqual(numel(collection), 2); assertEqual(numel(collection), 2);
...@@ -99,24 +99,36 @@ function test_retrieve_multiple() ...@@ -99,24 +99,36 @@ function test_retrieve_multiple()
assertEqual(props{2}.value, 7.68315); assertEqual(props{2}.value, 7.68315);
end end
%% Test query execution
function test_execute_query()
c = Caosdb();
violin = c.query("FIND Record Violin WITH name=\"Sherlock Holmes' violin\""){1};
props = violin.get_properties();
assertEqual(props{1}.name, "price");
assertEqual(props{1}.value, 814873.0);
assertEqual(props{2}.name, "Manufacturer");
assertEqual(props{2}.value, "119");
end
% Error handling tests %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Test retrieval with errors %% Test retrieval with errors
function test_retrieve_failure() function test_retrieve_failure()
% Default connection configuration is sufficient. % Default connection configuration is sufficient.
c = Caosdb(); c = Caosdb();
% Retrieve a non-existing entity. % Retrieve a non-existing entity.
does_not_exist = c.retrieve("i-do-not-exist"){1}; does_not_exist = c.retrieve_by_id("i-do-not-exist"){1};
assertTrue(does_not_exist.has_errors()); assertTrue(does_not_exist.has_errors());
error = does_not_exist.get_errors(){1}; error = does_not_exist.get_errors(){1};
assertEqual(typeinfo(error.code), "int64 scalar"); assertEqual(typeinfo(error.code), "int64 scalar");
assertEqual(error.code, int64(2)); assertEqual(error.code, int64(2));
assertEqual(error.description, "Entity does not exist."); assertEqual(error.description, "Entity does not exist.");
end
% Call retrieve with wrong arguments. %% Test querying with errors
% (Only m file level, no invalid arguments should make it to the mex function.) function test_execute_query_failure()
assertExceptionThrown(@()c.retrieve(120), "maox:InvalidArgument"); c = Caosdb();
assertExceptionThrown(@()c.retrieve({120}), "maox:InvalidArgument"); results = c.query("FIND Record I-Do-Not-Exist"); % Must not segfault.
assertExceptionThrown(@()c.retrieve({"120"}, {}), "maox:InvalidArgument"); assertTrue(isempty(results));
assertExceptionThrown(@()c.retrieve({"120"}, {120}), "maox:InvalidArgument");
assertExceptionThrown(@()c.retrieve({"120"}, {"120", 120}), "maox:InvalidArgument");
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment