File: testclient

package info (click to toggle)
python-easywebdav 1.2.0-12
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 152 kB
  • sloc: python: 251; sh: 43; makefile: 13
file content (59 lines) | stat: -rwxr-xr-x 1,246 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/bash

DATAFILE=$(mktemp)
DAVDIR=$(mktemp -d)
testclient=${0%/*}/testclient.py
numbytes=512

U=$1
P=$2

if [ "x${P}" = "x" ]; then
  P=$(openssl rand -base64 8)
fi

openssl rand -out "${DATAFILE}" ${numbytes}
ls -l "${DATAFILE}"


echo "Starting WebDAV server in ${DAVDIR}"

if [ "x${U}" = "x" ]; then
  python3 -m pywebdav -l ERROR -P 0 -D "${DAVDIR}" -n 2>&1 &
  SERVER_PID=$!
else
  python3 -m pywebdav -l ERROR -P 0 -D "${DAVDIR}" -u "${U}" -p "${P}" 2>&1 &
  SERVER_PID=$!
fi

#echo "server running as PID ${SERVER_PID}"
sleep 1

port=$(lsof  -p ${SERVER_PID} 2>/dev/null  | egrep "TCP localhost:.*LISTEN" | sed -e 's|.*TCP localhost:||' -e 's| .*||')
echo "connecting to port:${port}"

if [ "x${port}" = "x" ]; then
  echo "unable to find listening port of WebDAV-server running as ${SERVER_PID}"
  echo "skipping test."
  lsof  -p ${SERVER_PID} 2>/dev/null | egrep "TCP.*LISTEN"
  exit 77
fi

if [ "x${U}" = "x" ]; then
  ${testclient} -P "${port}" "${DATAFILE}"
else
  ${testclient} -P "${port}" -u "${U}" -p "${P}" "${DATAFILE}"
fi
RETVAL=$?

kill $SERVER_PID
RETKILL=$?

rm -vrf "${DATAFILE}" "${DAVDIR}"

if [ "x${RETKILL}" != "x0" ]; then
  echo "server killing failed with ${RETKILL}, skipping test"
  exit 77
fi

exit $RETVAL