Created
May 29, 2018 23:07
-
-
Save erikarvstedt/b3d1137c0cb2d44e7febee8803e8281e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dataDir=~/tmp/paperless/data/optencryption | |
paperless=~/tmp/paperless/cmds/optencryption | |
read -d '' tmpstr <<EOF | |
runner (dirCfg "$dataDir") | |
EOF | |
../build-env $paperless "$tmpstr" | |
read -d '' tmpstr <<EOF | |
runner (dirCfg "$dataDir" // { | |
PAPERLESS_PASSPHRASE = "foo"; | |
}) | |
EOF | |
../build-env $paperless-encrypted "$tmpstr" | |
nix-build --out-link ~/tmp/paperless/cmds/imagemagick '<nixpkgs>' -A imagemagick | |
makeDoc() { | |
~/tmp/paperless/cmds/imagemagick/bin/convert \ | |
-size 500x40 xc:white -font "DejaVu-Sans" -pointsize 20 -fill black -annotate +5+20 "$1" "$2" | |
} | |
makeTestDoc() { | |
makeDoc "hello world 22.03.1921 $(date +%s%3N)" $1/img-$(date +%s%3N).png | |
} | |
set -euox pipefail | |
# | |
echo 'test basic no encryption' | |
rm -rf $dataDir && \ | |
$paperless migrate && \ | |
makeTestDoc $dataDir/consume && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless document_consumer --oneshot && \ | |
ls $dataDir/media/documents/originals/000000{1,2}.png > /dev/null | |
# | |
echo 'test basic with encryption' | |
rm -rf $dataDir && \ | |
$paperless-encrypted migrate && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless-encrypted document_consumer --oneshot && \ | |
[[ -e $dataDir/media/documents/originals/0000001.png.gpg ]] | |
# | |
echo 'test missing password' | |
rm -rf $dataDir && \ | |
$paperless migrate && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless-encrypted document_consumer --oneshot && \ | |
makeTestDoc $dataDir/consume && \ | |
result=$($paperless document_consumer --oneshot 2>&1 || true) && \ | |
[[ $result == *no\ password\ is\ set* ]] | |
# | |
echo 'test changed password' | |
rm -rf $dataDir && \ | |
$paperless migrate && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless-encrypted document_consumer --oneshot && \ | |
makeTestDoc $dataDir/consume && \ | |
result=$(PAPERLESS_PASSPHRASE=bar $paperless document_consumer --oneshot 2>&1 || true) && \ | |
[[ $result == *current\ password\ doesn\'t\ match* ]] | |
# | |
echo 'test migration from old data' | |
rm -rf $dataDir && \ | |
# create old data | |
(cd ../paperless && git checkout --quiet tmp-last-common) && \ | |
$paperless-encrypted migrate && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless-encrypted document_consumer --oneshot && \ | |
# migrate to new version | |
(cd ../paperless && git checkout --quiet disable-encryption) && \ | |
$paperless-encrypted migrate && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless-encrypted document_consumer --oneshot && \ | |
ls $dataDir/media/documents/originals/000000{1,2}.png.gpg > /dev/null | |
# | |
echo 'test migration and db conversion: encrypted -> unencrypted' | |
rm -rf $dataDir && \ | |
# create old data | |
(cd ../paperless && git checkout --quiet tmp-last-common) && \ | |
$paperless-encrypted migrate && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless-encrypted document_consumer --oneshot && \ | |
# migrate to new version | |
(cd ../paperless && git checkout --quiet disable-encryption) && \ | |
$paperless-encrypted migrate && \ | |
[[ -e $dataDir/media/documents/originals/0000001.png.gpg ]] && \ | |
# convert to unencrypted db | |
printf "\n" | $paperless-encrypted change_encryption gpg unencrypted && \ | |
[[ -e $dataDir/media/documents/originals/0000001.png ]] && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless document_consumer --oneshot | |
# | |
echo 'test db conversion: encrypted -> unencrypted -> encrypted' | |
rm -rf $dataDir && \ | |
# create old data | |
(cd ../paperless && git checkout --quiet tmp-last-common) && \ | |
$paperless-encrypted migrate && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless-encrypted document_consumer --oneshot && \ | |
# migrate to new version | |
(cd ../paperless && git checkout --quiet disable-encryption) && \ | |
$paperless-encrypted migrate && \ | |
# convert to unencrypted db | |
[[ -e $dataDir/media/documents/originals/0000001.png.gpg ]] && \ | |
printf "\n" | $paperless-encrypted change_encryption gpg unencrypted && \ | |
[[ -e $dataDir/media/documents/originals/0000001.png ]] && \ | |
makeTestDoc $dataDir/consume && \ | |
$paperless document_consumer --oneshot && \ | |
# convert to encrypted db | |
printf "\n" | $paperless-encrypted change_encryption unencrypted gpg && \ | |
ls $dataDir/media/documents/originals/000000{1,2}.png.gpg > /dev/null | |
# | |
# misc | |
misc() { | |
makeTestDoc $dataDir/consume | |
$paperless document_consumer --oneshot | |
$paperless runserver 0.0.0.0:8000 | |
$paperless-encrypted runserver 0.0.0.0:8000 | |
} | |
analyze() { | |
tree $dataDir/ | |
l $dataDir/consume | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment