mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Changes: - util/sendmail now populates email files in the 'test-emails' directory. - util/sendmail does this in a serialized fashion based off of the test suite and name retrieved from PYTEST_CURRENT_TEST in the format: `<test_suite>_<test_function>.n.txt` where n is increased by one every time sendmail is run. - pytest conftest fixtures have been added for test email setup; it wipes out old emails for the particular test function being run. - New aurweb.testing.email.Email class allows developers to test against emails stored by util/sendmail. Simple pass the serial you want to test against, starting at serial = 1; e.g. Email(serial). Signed-off-by: Kevin Morris <kevr@0cost.org>
25 lines
668 B
Bash
Executable file
25 lines
668 B
Bash
Executable file
#!/bin/bash
|
|
# Send email to temporary filesystem for tests.
|
|
dir='test-emails'
|
|
filename='email.txt'
|
|
if [ ! -z ${PYTEST_CURRENT_TEST+x} ]; then
|
|
filename="$(echo $PYTEST_CURRENT_TEST | cut -d ' ' -f 1 | sed -r 's/(\/|\.|,|:)/_/g')"
|
|
fi
|
|
mkdir -p "$dir"
|
|
|
|
path="${dir}/${filename}"
|
|
serial_file="${path}.serial"
|
|
if [ ! -f $serial_file ]; then
|
|
echo 0 > $serial_file
|
|
fi
|
|
|
|
# Increment and update $serial_file.
|
|
serial=$(($(cat $serial_file) + 1))
|
|
echo $serial > $serial_file
|
|
|
|
# Use the serial we're on to mark the email file.
|
|
# Emails have the format: PYTEST_CURRENT_TEST.s.txt
|
|
# where s is the current serial for PYTEST_CURRENT_TEST.
|
|
cat > "${path}.${serial}.txt"
|
|
|
|
exit 0
|