Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

introduce uploadConditions.py unit test #34379

Merged
merged 1 commit into from
Jul 16, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CondCore/Utilities/test/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,7 @@
</bin>

<test name="testGetPayloadData" command="test_getPayloadData.sh"/>

<test name="testUploadConditions" command="test_uploadConditions.sh">
<flags PRE_TEST="testBasicPayload"/>
</test>
57 changes: 57 additions & 0 deletions CondCore/Utilities/test/test_uploadConditions.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/bin/bash
Copy link
Contributor

@smuzaffar smuzaffar Jul 8, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can use #!/bin/bash -e and then you not need die, check_for_success and check_for_failure. with -e script will fail and exit on first failed command.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather leave it as is in order to have the printouts.

Copy link
Contributor

@smuzaffar smuzaffar Jul 8, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can use #!/bin/bash -ex to have the detailed printsouts :-)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that doesn't work either, because this:

check_for_failure uploadConditions.py BasicPayload_v0.db <<EOF
y
0
oracle://cms_orcoff_prep/CMS_CONDITIONS
1
uploadConditions unit test
BasicPayload_v0
`echo -ne '\n'`
y
test
test
EOF

is actually expected to fail (due to reasons explained here: #34379 (comment)). So doing what you suggest the test would constantly fail.

check_for_success() {
"${@}" && echo -e "\n ---> Passed test of '${@}'\n\n" || exit 1
}

check_for_failure() {
"${@}" && exit 1 || echo -e "\n ---> Passed test of '${@}'\n\n"
}

function die { echo $1: status $2; exit $2; }

########################################
# Test help function
########################################
check_for_success uploadConditions.py --help

########################################
# Test wizard
########################################
if test -f "BasicPayload_v0_ref.txt"; then
rm -f BasicPayload_v0_ref.txt
fi
cat <<EOF >> BasicPayload_v0_ref.txt
{
"destinationDatabase": "oracle://cms_orcoff_prep/CMS_CONDITIONS",
"destinationTags": {
"BasicPayload_v0": {}
},
"inputTag": "BasicPayload_v0",
"since": 1,
"userText": "uploadConditions unit test"
}
EOF

echo "Content of the directory is:" `ls -lh . | grep db`
echo -ne '\n\n'

if test -f "BasicPayload_v0.txt"; then
rm -f BasicPayload_v0.txt
fi

# this is expected to fail given lack of credentials
check_for_failure uploadConditions.py BasicPayload_v0.db <<EOF
y
0
oracle://cms_orcoff_prep/CMS_CONDITIONS
1
uploadConditions unit test
BasicPayload_v0
`echo -ne '\n'`
y
test
test
EOF

# test that the metadata created with the wizard corresponds to the reference one
diff -w BasicPayload_v0.txt BasicPayload_v0_ref.txt || die 'failed comparing metadata with reference' $?