tests: Compare blueprints as TOML objects, not strings

this is to avoid differences in ordering and white space. The same
approach is used on rhel7-extras branch.

Cherry-picked from 04bc5e9e86

Related: rhbz#1825190
This commit is contained in:
Alexander Todorov 2020-05-01 13:06:00 +03:00 committed by Brian C. Lane
parent 45d227a189
commit de3f548025
3 changed files with 23 additions and 1 deletions

View File

@ -19,6 +19,14 @@ if ! rpm -q beakerlib; then
yum install -y beakerlib
fi
if ! rpm -q python36; then
yum -y install python36
fi
if ! rpm -q python3-pytoml; then
yum -y install python3-pytoml
fi
if ! rpm -q git; then
yum install -y git
fi

13
tests/cli/lib/toml-compare Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/env python3
import sys
import pytoml as toml
if len(sys.argv) != 3:
print("USAGE: ", __file__, "<blueprint-one.toml> <blueprint-two.toml>")
sys.exit(1)
blueprint_one = toml.loads(open(sys.argv[1]).read())
blueprint_two = toml.loads(open(sys.argv[2]).read())
assert blueprint_one == blueprint_two

View File

@ -52,7 +52,8 @@ __EOF__
rlPhaseEnd
rlPhaseStartTest "blueprints show"
rlAssertEquals "show displays blueprint in TOML" "`$CLI blueprints show $BLUEPRINT_NAME`" "`cat $BLUEPRINT_NAME.toml`"
$CLI blueprints show $BLUEPRINT_NAME > shown-$BLUEPRINT_NAME.toml
rlRun -t -c "$(dirname $0)/lib/toml-compare $BLUEPRINT_NAME.toml shown-$BLUEPRINT_NAME.toml"
rlPhaseEnd
rlPhaseStartTest "SemVer .patch version is incremented automatically"