--- /dev/null
+FROM ubuntu:16.04
+
+RUN apt-get update
+RUN apt-get install -y \
+ python-yaml \
+ python3-yaml \
+ python-pytest \
+ python3-pytest \
+ python-pip \
+ python3-pip
+
+# RUN yum -y install epel-release
+# RUN yum -y install \
+# git \
+# python-yaml \
+# python-pip \
+# pytest \
+# python34-yaml \
+# python34-pytest \
+# python34-pip \
+# findutils
+
+COPY / /src
+RUN find /src -name \*.pyc -delete
+
+ENV PYTEST2 py.test
+ENV PYTEST3 py.test-3
+
+ENV PIP2 pip2
+ENV PIP3 pip3
+
+WORKDIR /src
+
+CMD ["./tests/docker-ubuntu-1604/run.sh"]
--- /dev/null
+This is a live test of Suricata-Update in an Ubuntu 16.04 LTS Docker
+image.
+
+The following tests are performed:
+- Unit tests with Python 2 and Python 3.
+- Installation with Python 2 pip.
+- Various commands run as a user might with Python 2 install.
+- Installation with Python 3 pip.
+- Various commands run as a user might with Python 3 install.
+
+This test is "live" as the index and rule files will be downloaded
+from the internet.
--- /dev/null
+#! /bin/sh
+
+set -e
+set -x
+
+# Test the commands in a scenario a user might.
+test_commands() {
+ # Cleanup.
+ rm -rf /var/lib/suricata
+
+ suricata-update
+ test -e /var/lib/suricata/rules/suricata.rules
+
+ suricata-update update-sources
+ test -e /var/lib/suricata/update/cache/index.yaml
+
+ suricata-update enable-source oisf/trafficid
+ test -e /var/lib/suricata/update/sources/et-open.yaml
+ test -e /var/lib/suricata/update/sources/oisf-trafficid.yaml
+ suricata-update
+
+ suricata-update disable-source oisf/trafficid
+ test ! -e /var/lib/suricata/update/sources/oisf-trafficid.yaml
+ test -e /var/lib/suricata/update/sources/oisf-trafficid.yaml.disabled
+
+ suricata-update remove-source oisf/trafficid
+ test ! -e /var/lib/suricata/update/sources/oisf-trafficid.yaml.disabled
+}
+
+# Python 2 unit tests.
+PYTHONPATH=. ${PYTEST2}
+
+# Python 3 unit tests.
+PYTHONPATH=. ${PYTEST3}
+
+# Install with Python 2.
+${PIP2} install .
+test -e /usr/local/bin/suricata-update
+
+test_commands
+
+# Uninstall Python 2 version.
+${PIP2} uninstall --yes suricata-update
+test ! -e /usr/local/bin/suricata-update
+
+# Install and run with Python 3.
+${PIP3} install .
+test -e /usr/local/bin/suricata-update
+grep python3 -s /usr/local/bin/suricata-update
+
+test_commands
+
+${PIP3} uninstall --yes suricata-update
+test ! -e /usr/local/bin/suricata-update