From 4a4675105f19e1c6d92749a79044a0d591ed2c3c Mon Sep 17 00:00:00 2001 From: Yves Noirjean <yves.noirjean@id.ethz.ch> Date: Thu, 22 Mar 2018 18:42:22 +0100 Subject: [PATCH] obis: added integration tests --- .../OBis/integration_tests/00_get_config.sh | 4 + .../integration_tests/00_get_config_global.sh | 3 + .../integration_tests/01_global_config.sh | 11 ++ .../02_first_commit_1_create_repository.sh | 7 + .../02_first_commit_2_commit.sh | 6 + .../03_second_commit_1_commit.sh | 6 + .../03_second_commit_2_git_annex_info.sh | 5 + .../integration_tests/04_second_repository.sh | 7 + .../05_second_external_dms.sh | 7 + .../06_error_on_first_commit_1_error.sh | 6 + .../06_error_on_first_commit_2_status.sh | 4 + .../06_error_on_first_commit_3_commit.sh | 5 + .../07_attach_to_collection.sh | 8 + .../integration_tests/08_addref_1_success.sh | 6 + .../08_addref_2_duplicate.sh | 5 + .../08_addref_3_non-existent.sh | 5 + .../OBis/integration_tests/09_local_clone.sh | 7 + .../11_init_analysis_1_external.sh | 9 ++ .../11_init_analysis_2_internal.sh | 9 ++ .../11_init_analysis_3_git_check_ignore.sh | 5 + .../12_metadata_only_1_commit.sh | 8 + .../12_metadata_only_2_metadata_commit.sh | 6 + .../13_sync_1_git_commit_and_sync.sh | 8 + .../integration_tests/13_sync_2_only_sync.sh | 5 + src/python/OBis/integration_tests/big_file | Bin 0 -> 1000000 bytes .../integration_tests/integration_tests.py | 140 ++++++++++++++++++ 26 files changed, 292 insertions(+) create mode 100755 src/python/OBis/integration_tests/00_get_config.sh create mode 100755 src/python/OBis/integration_tests/00_get_config_global.sh create mode 100755 src/python/OBis/integration_tests/01_global_config.sh create mode 100755 src/python/OBis/integration_tests/02_first_commit_1_create_repository.sh create mode 100755 src/python/OBis/integration_tests/02_first_commit_2_commit.sh create mode 100755 src/python/OBis/integration_tests/03_second_commit_1_commit.sh create mode 100755 src/python/OBis/integration_tests/03_second_commit_2_git_annex_info.sh create mode 100755 src/python/OBis/integration_tests/04_second_repository.sh create mode 100755 src/python/OBis/integration_tests/05_second_external_dms.sh create mode 100755 src/python/OBis/integration_tests/06_error_on_first_commit_1_error.sh create mode 100755 src/python/OBis/integration_tests/06_error_on_first_commit_2_status.sh create mode 100755 src/python/OBis/integration_tests/06_error_on_first_commit_3_commit.sh create mode 100755 src/python/OBis/integration_tests/07_attach_to_collection.sh create mode 100755 src/python/OBis/integration_tests/08_addref_1_success.sh create mode 100755 src/python/OBis/integration_tests/08_addref_2_duplicate.sh create mode 100755 src/python/OBis/integration_tests/08_addref_3_non-existent.sh create mode 100755 src/python/OBis/integration_tests/09_local_clone.sh create mode 100755 src/python/OBis/integration_tests/11_init_analysis_1_external.sh create mode 100755 src/python/OBis/integration_tests/11_init_analysis_2_internal.sh create mode 100755 src/python/OBis/integration_tests/11_init_analysis_3_git_check_ignore.sh create mode 100755 src/python/OBis/integration_tests/12_metadata_only_1_commit.sh create mode 100755 src/python/OBis/integration_tests/12_metadata_only_2_metadata_commit.sh create mode 100755 src/python/OBis/integration_tests/13_sync_1_git_commit_and_sync.sh create mode 100755 src/python/OBis/integration_tests/13_sync_2_only_sync.sh create mode 100644 src/python/OBis/integration_tests/big_file create mode 100644 src/python/OBis/integration_tests/integration_tests.py diff --git a/src/python/OBis/integration_tests/00_get_config.sh b/src/python/OBis/integration_tests/00_get_config.sh new file mode 100755 index 00000000000..7df8639dbc1 --- /dev/null +++ b/src/python/OBis/integration_tests/00_get_config.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +cd $1 +obis config diff --git a/src/python/OBis/integration_tests/00_get_config_global.sh b/src/python/OBis/integration_tests/00_get_config_global.sh new file mode 100755 index 00000000000..13449f27ca4 --- /dev/null +++ b/src/python/OBis/integration_tests/00_get_config_global.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +obis config -g diff --git a/src/python/OBis/integration_tests/01_global_config.sh b/src/python/OBis/integration_tests/01_global_config.sh new file mode 100755 index 00000000000..ec95bed0b31 --- /dev/null +++ b/src/python/OBis/integration_tests/01_global_config.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ -d "~/.obis" ]; then + rm -r ~/.obis +fi + +obis config -g openbis_url https://localhost:8443 +obis config -g user admin +obis config -g data_set_type UNKNOWN +obis config -g verify_certificates false +obis config -g hostname `hostname` diff --git a/src/python/OBis/integration_tests/02_first_commit_1_create_repository.sh b/src/python/OBis/integration_tests/02_first_commit_1_create_repository.sh new file mode 100755 index 00000000000..f507e0123b1 --- /dev/null +++ b/src/python/OBis/integration_tests/02_first_commit_1_create_repository.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +rm -rf $1/obis_data +mkdir $1/obis_data && cd $1/obis_data +obis init data1 && cd data1 +echo content >> file +obis status diff --git a/src/python/OBis/integration_tests/02_first_commit_2_commit.sh b/src/python/OBis/integration_tests/02_first_commit_2_commit.sh new file mode 100755 index 00000000000..5a62ded9a61 --- /dev/null +++ b/src/python/OBis/integration_tests/02_first_commit_2_commit.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +cd $1/obis_data/data1 + +obis config object_id /DEFAULT/DEFAULT +obis commit -m 'commit message' diff --git a/src/python/OBis/integration_tests/03_second_commit_1_commit.sh b/src/python/OBis/integration_tests/03_second_commit_1_commit.sh new file mode 100755 index 00000000000..7488bbdcca8 --- /dev/null +++ b/src/python/OBis/integration_tests/03_second_commit_1_commit.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +cd $1/obis_data/data1 + +dd if=/dev/zero of=big_file bs=1000000 count=1 +obis commit -m 'commit message' diff --git a/src/python/OBis/integration_tests/03_second_commit_2_git_annex_info.sh b/src/python/OBis/integration_tests/03_second_commit_2_git_annex_info.sh new file mode 100755 index 00000000000..f3e668bce88 --- /dev/null +++ b/src/python/OBis/integration_tests/03_second_commit_2_git_annex_info.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd $1/obis_data/data1 + +git annex info big_file diff --git a/src/python/OBis/integration_tests/04_second_repository.sh b/src/python/OBis/integration_tests/04_second_repository.sh new file mode 100755 index 00000000000..903e8a64b9e --- /dev/null +++ b/src/python/OBis/integration_tests/04_second_repository.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd $1/obis_data +obis init data2 && cd data2 +obis config object_id /DEFAULT/DEFAULT +echo content >> file +obis commit -m 'commit message' diff --git a/src/python/OBis/integration_tests/05_second_external_dms.sh b/src/python/OBis/integration_tests/05_second_external_dms.sh new file mode 100755 index 00000000000..c7c4ef87969 --- /dev/null +++ b/src/python/OBis/integration_tests/05_second_external_dms.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +mkdir $1/obis_data_b && cd $1/obis_data_b +obis init data3 && cd data3 +obis config object_id /DEFAULT/DEFAULT +echo content >> file +obis commit -m 'commit message' diff --git a/src/python/OBis/integration_tests/06_error_on_first_commit_1_error.sh b/src/python/OBis/integration_tests/06_error_on_first_commit_1_error.sh new file mode 100755 index 00000000000..3c58d80edce --- /dev/null +++ b/src/python/OBis/integration_tests/06_error_on_first_commit_1_error.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +cd $1/obis_data +obis init data4 && cd data4 +echo content >> file +obis commit -m 'commit message' diff --git a/src/python/OBis/integration_tests/06_error_on_first_commit_2_status.sh b/src/python/OBis/integration_tests/06_error_on_first_commit_2_status.sh new file mode 100755 index 00000000000..8815e2f5b74 --- /dev/null +++ b/src/python/OBis/integration_tests/06_error_on_first_commit_2_status.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +cd $1/obis_data/data4 +obis status diff --git a/src/python/OBis/integration_tests/06_error_on_first_commit_3_commit.sh b/src/python/OBis/integration_tests/06_error_on_first_commit_3_commit.sh new file mode 100755 index 00000000000..6cb1ce4b2cd --- /dev/null +++ b/src/python/OBis/integration_tests/06_error_on_first_commit_3_commit.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd $1/obis_data/data4 +obis config object_id /DEFAULT/DEFAULT +obis commit -m 'commit message' diff --git a/src/python/OBis/integration_tests/07_attach_to_collection.sh b/src/python/OBis/integration_tests/07_attach_to_collection.sh new file mode 100755 index 00000000000..3ea844b98ec --- /dev/null +++ b/src/python/OBis/integration_tests/07_attach_to_collection.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +cd $1/obis_data +obis init data5 && cd data5 +echo content >> file +obis config collection_id /DEFAULT/DEFAULT/DEFAULT +obis commit -m 'msg' + diff --git a/src/python/OBis/integration_tests/08_addref_1_success.sh b/src/python/OBis/integration_tests/08_addref_1_success.sh new file mode 100755 index 00000000000..f368719c5a2 --- /dev/null +++ b/src/python/OBis/integration_tests/08_addref_1_success.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +cd $1/obis_data +cp -r data1 data6 +obis addref data6 + diff --git a/src/python/OBis/integration_tests/08_addref_2_duplicate.sh b/src/python/OBis/integration_tests/08_addref_2_duplicate.sh new file mode 100755 index 00000000000..0429bbf6221 --- /dev/null +++ b/src/python/OBis/integration_tests/08_addref_2_duplicate.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd $1/obis_data +obis addref data6 + diff --git a/src/python/OBis/integration_tests/08_addref_3_non-existent.sh b/src/python/OBis/integration_tests/08_addref_3_non-existent.sh new file mode 100755 index 00000000000..363cc3d7027 --- /dev/null +++ b/src/python/OBis/integration_tests/08_addref_3_non-existent.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd $1/obis_data +obis addref data7 + diff --git a/src/python/OBis/integration_tests/09_local_clone.sh b/src/python/OBis/integration_tests/09_local_clone.sh new file mode 100755 index 00000000000..5e2a031aa69 --- /dev/null +++ b/src/python/OBis/integration_tests/09_local_clone.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +data_set_id=$2 + +cd $1/obis_data_b +obis clone $data_set_id + diff --git a/src/python/OBis/integration_tests/11_init_analysis_1_external.sh b/src/python/OBis/integration_tests/11_init_analysis_1_external.sh new file mode 100755 index 00000000000..d5855764881 --- /dev/null +++ b/src/python/OBis/integration_tests/11_init_analysis_1_external.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +cd $1/obis_data +obis init_analysis -p data1 analysis1 +cd analysis1 +obis config object_id /DEFAULT/DEFAULT +echo content >> file +obis commit -m 'commit message' + diff --git a/src/python/OBis/integration_tests/11_init_analysis_2_internal.sh b/src/python/OBis/integration_tests/11_init_analysis_2_internal.sh new file mode 100755 index 00000000000..311d53e0579 --- /dev/null +++ b/src/python/OBis/integration_tests/11_init_analysis_2_internal.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +cd $1/obis_data/data1 +obis init_analysis analysis2 +cd analysis2 +obis config object_id /DEFAULT/DEFAULT +echo content >> file +obis commit -m 'commit message' + diff --git a/src/python/OBis/integration_tests/11_init_analysis_3_git_check_ignore.sh b/src/python/OBis/integration_tests/11_init_analysis_3_git_check_ignore.sh new file mode 100755 index 00000000000..bb597b8aae1 --- /dev/null +++ b/src/python/OBis/integration_tests/11_init_analysis_3_git_check_ignore.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd $1/obis_data/data1 +git check-ignore analysis2 + diff --git a/src/python/OBis/integration_tests/12_metadata_only_1_commit.sh b/src/python/OBis/integration_tests/12_metadata_only_1_commit.sh new file mode 100755 index 00000000000..2a7d6560f3b --- /dev/null +++ b/src/python/OBis/integration_tests/12_metadata_only_1_commit.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +cd $1/obis_data +obis init data7 && cd data7 +obis config object_id /DEFAULT/DEFAULT +echo content >> file +obis commit -m 'commit message' + diff --git a/src/python/OBis/integration_tests/12_metadata_only_2_metadata_commit.sh b/src/python/OBis/integration_tests/12_metadata_only_2_metadata_commit.sh new file mode 100755 index 00000000000..086383272c5 --- /dev/null +++ b/src/python/OBis/integration_tests/12_metadata_only_2_metadata_commit.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +cd $1/obis_data/data7 +obis config collection_id /DEFAULT/DEFAULT/DEFAULT +obis commit -m 'commit message' + diff --git a/src/python/OBis/integration_tests/13_sync_1_git_commit_and_sync.sh b/src/python/OBis/integration_tests/13_sync_1_git_commit_and_sync.sh new file mode 100755 index 00000000000..590f099d3a1 --- /dev/null +++ b/src/python/OBis/integration_tests/13_sync_1_git_commit_and_sync.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +cd $1/obis_data/data7 +echo content >> file2 +git add file2 +git commit -m 'msg' +obis sync + diff --git a/src/python/OBis/integration_tests/13_sync_2_only_sync.sh b/src/python/OBis/integration_tests/13_sync_2_only_sync.sh new file mode 100755 index 00000000000..615a994c459 --- /dev/null +++ b/src/python/OBis/integration_tests/13_sync_2_only_sync.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd $1/obis_data/data7 +obis sync + diff --git a/src/python/OBis/integration_tests/big_file b/src/python/OBis/integration_tests/big_file new file mode 100644 index 0000000000000000000000000000000000000000..7c2624a6b9687e88178638cd95b609c329177ade GIT binary patch literal 1000000 zcmeIufdBvi0K=g9Qy=7oP+`D;0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ O0|pEjFkryI>%ag*ApijY literal 0 HcmV?d00001 diff --git a/src/python/OBis/integration_tests/integration_tests.py b/src/python/OBis/integration_tests/integration_tests.py new file mode 100644 index 00000000000..ecc169c6478 --- /dev/null +++ b/src/python/OBis/integration_tests/integration_tests.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import json +import subprocess +import socket + + +def run(cmd, tmpdir="", params=[]): + completed_process = subprocess.run([cmd, tmpdir] + params, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + result = '' + if completed_process.stderr: + result += completed_process.stderr.decode('utf-8').strip() + if completed_process.stdout: + result += completed_process.stdout.decode('utf-8').strip() + print('-------------------' + cmd + '------------------- ' + str(tmpdir)) + print(result) + return result + + +def test_obis(tmpdir): + # 1. Global configuration + result = run('./01_global_config.sh', tmpdir) + config = json.loads(run('./00_get_config_global.sh')) + assert config['openbis_url'] == 'https://localhost:8443' + assert config['user'] == 'admin' + assert config['data_set_type'] == 'UNKNOWN' + assert config['verify_certificates'] == False + + # 2. First commit + result = run('./02_first_commit_1_create_repository.sh', tmpdir) + assert '?? .obis/config.json' in result + assert '?? file' in result + result = run('./02_first_commit_2_commit.sh', tmpdir) + config = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data1')) + assert config['external_dms_id'].startswith('ADMIN-' + socket.gethostname().upper()) + assert len(config['repository_id']) == 36 + assert "Created data set {}.".format(config['data_set_id']) in result + + # 3. Second commit + config_before = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data1')) + result = run('./03_second_commit_1_commit.sh', tmpdir) + config = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data1')) + assert config['data_set_id'] != config_before['data_set_id'] + assert config['external_dms_id'].startswith('ADMIN-' + socket.gethostname().upper()) + assert config['external_dms_id'] == config_before['external_dms_id'] + assert config['repository_id'] == config_before['repository_id'] + assert "Created data set {}.".format(config['data_set_id']) in result + result = run('./03_second_commit_2_git_annex_info.sh', tmpdir) + assert 'file: big_file' in result + assert 'key: SHA256E-s1000000--d29751f2649b32ff572b5e0a9f541ea660a50f94ff0beedfb0b692b924cc8025' in result + assert 'present: true' in result + + # 4. Second repository + result = run('./04_second_repository.sh', tmpdir) + config_data1 = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data1')) + config = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data2')) + assert config['external_dms_id'].startswith('ADMIN-' + socket.gethostname().upper()) + assert config['external_dms_id'] == config_data1['external_dms_id'] + assert len(config['repository_id']) == 36 + assert config['repository_id'] != config_data1['repository_id'] + assert "Created data set {}.".format(config['data_set_id']) in result + + # 5. Second external dms + result = run('./05_second_external_dms.sh', tmpdir) + config_data1 = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data1')) + config = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data_b/data3')) + assert config['external_dms_id'].startswith('ADMIN-' + socket.gethostname().upper()) + assert config['external_dms_id'] != config_data1['external_dms_id'] + assert len(config['repository_id']) == 36 + assert config['repository_id'] != config_data1['repository_id'] + assert "Created data set {}.".format(config['data_set_id']) in result + + # 6. Error on first commit + result = run('./06_error_on_first_commit_1_error.sh', tmpdir) + assert 'Missing configuration settings for [\'object_id\', \'collection_id\'].' in result + result = run('./06_error_on_first_commit_2_status.sh', tmpdir) + assert '?? file' in result + result = run('./06_error_on_first_commit_3_commit.sh', tmpdir) + config = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data4')) + assert "Created data set {}.".format(config['data_set_id']) in result + + # 7. Attach data set to a collection + result = run('./07_attach_to_collection.sh', tmpdir) + config = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data5')) + assert config['external_dms_id'].startswith('ADMIN-' + socket.gethostname().upper()) + assert len(config['repository_id']) == 36 + assert "Created data set {}.".format(config['data_set_id']) in result + + # 8. Addref + result = run('./08_addref_1_success.sh', tmpdir) + config_data1 = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data1')) + config_data6 = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data6')) + assert config_data6 == config_data1 + result = run('./08_addref_2_duplicate.sh', tmpdir) + assert 'DataSet already exists in the database' in result + result = run('./08_addref_3_non-existent.sh', tmpdir) + assert 'Invalid value' in result + + # 9. Local clone + config_data2 = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data2')) + result = run('./09_local_clone.sh', tmpdir, [config_data2['data_set_id']]) + config_data2_clone = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data_b/data2')) + assert config_data2_clone['external_dms_id'].startswith('ADMIN-' + socket.gethostname().upper()) + assert config_data2_clone['external_dms_id'] != config_data2['external_dms_id'] + del config_data2['external_dms_id'] + del config_data2_clone['external_dms_id'] + assert config_data2_clone == config_data2 + + # 11. Init analysis + result = run('./11_init_analysis_1_external.sh', tmpdir, [config_data2['data_set_id']]) + config_data1 = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data1')) + config_analysis1 = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/analysis1')) + assert "Created data set {}.".format(config_analysis1['data_set_id']) in result + assert len(config_analysis1['repository_id']) == 36 + assert config_analysis1['repository_id'] != config_data1['repository_id'] + assert config_analysis1['data_set_id'] != config_data1['data_set_id'] + result = run('./11_init_analysis_2_internal.sh', tmpdir) + config_analysis2 = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data1/analysis2')) + assert "Created data set {}.".format(config_analysis2['data_set_id']) in result + assert len(config_analysis2['repository_id']) == 36 + assert config_analysis2['repository_id'] != config_data1['repository_id'] + assert config_analysis2['data_set_id'] != config_data1['data_set_id'] + result = run('./11_init_analysis_3_git_check_ignore.sh', tmpdir) + assert 'analysis2' in result + + # 12. Metadata only commit + result = run('./12_metadata_only_1_commit.sh', tmpdir) + config = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data7')) + assert "Created data set {}.".format(config['data_set_id']) in result + result = run('./12_metadata_only_2_metadata_commit.sh', tmpdir) + config = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data7')) + assert "Created data set {}.".format(config['data_set_id']) in result + + # 13. obis sync + result = run('./13_sync_1_git_commit_and_sync.sh', tmpdir) + config = json.loads(run('./00_get_config.sh', tmpdir + '/obis_data/data7')) + assert "Created data set {}.".format(config['data_set_id']) in result + result = run('./13_sync_2_only_sync.sh', tmpdir) + assert 'Nothing to sync' in result -- GitLab