From c5d3ce08408f2a3e8fb5fba7a44ccb1c79f12643 Mon Sep 17 00:00:00 2001
From: Dean Troyer <dtroyer@gmail.com>
Date: Fri, 8 Jun 2018 15:10:02 -0500
Subject: [PATCH] Add test framework

test-requirements.txt - Install yamllint
tox.ini - yaml linter
.zuul-yaml - run openstack-tox-linters job

Change-Id: I0fa58c9f06f7f5ea2400ee3a2eed891d5470049e
---
 .gitignore            |  2 ++
 .zuul.yaml            |  8 ++++++++
 test-requirements.txt |  2 ++
 tox.ini               | 30 ++++++++++++++++++++++++++++++
 4 files changed, 42 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 .zuul.yaml
 create mode 100644 test-requirements.txt
 create mode 100644 tox.ini

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..656e87e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*~
+.tox
diff --git a/.zuul.yaml b/.zuul.yaml
new file mode 100644
index 0000000..7ccbd0a
--- /dev/null
+++ b/.zuul.yaml
@@ -0,0 +1,8 @@
+---
+- project:
+    check:
+      jobs:
+        - openstack-tox-linters
+    gate:
+      jobs:
+        - openstack-tox-linters
diff --git a/test-requirements.txt b/test-requirements.txt
new file mode 100644
index 0000000..266f880
--- /dev/null
+++ b/test-requirements.txt
@@ -0,0 +1,2 @@
+PyYAML>=3.1.0
+yamllint>=0.5.2
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..4e2fa48
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,30 @@
+[tox]
+envlist = linters
+minversion = 2.3
+skipsdist = True
+
+[testenv]
+basepython = python3
+install_command = pip install -U {opts} {packages}
+setenv = VIRTUAL_ENV={envdir}
+         OS_STDOUT_CAPTURE=1
+         OS_STDERR_CAPTURE=1
+         OS_TEST_TIMEOUT=60
+deps = -r{toxinidir}/test-requirements.txt
+
+[testenv:linters]
+whitelist_externals = bash
+commands =
+  bash -c "find {toxinidir}        \
+            \( -name .tox -prune \)         \
+            -o -type f -name '*.yaml'       \
+            -print0 | xargs -0 yamllint"
+
+[testenv:venv]
+commands = {posargs}
+
+[testenv:true]
+# Use same environment directory as venv to save space and install time
+envdir = {toxworkdir}/venv
+commands = true
+whitelist_externals = true