summaryrefslogtreecommitdiff
path: root/functional
diff options
context:
space:
mode:
Diffstat (limited to 'functional')
-rw-r--r--functional/common/test.py6
-rw-r--r--functional/tests/test_examples.py22
2 files changed, 28 insertions, 0 deletions
diff --git a/functional/common/test.py b/functional/common/test.py
index c1bb0b10..464844fa 100644
--- a/functional/common/test.py
+++ b/functional/common/test.py
@@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import os
import re
import shlex
import subprocess
@@ -19,6 +20,11 @@ import six
from functional.common import exceptions
+COMMON_DIR = os.path.dirname(os.path.abspath(__file__))
+FUNCTIONAL_DIR = os.path.normpath(os.path.join(COMMON_DIR, '..'))
+ROOT_DIR = os.path.normpath(os.path.join(FUNCTIONAL_DIR, '..'))
+EXAMPLE_DIR = os.path.join(ROOT_DIR, 'examples')
+
def execute(cmd, action, flags='', params='', fail_ok=False,
merge_stderr=False):
diff --git a/functional/tests/test_examples.py b/functional/tests/test_examples.py
new file mode 100644
index 00000000..fdaa26b8
--- /dev/null
+++ b/functional/tests/test_examples.py
@@ -0,0 +1,22 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from functional.common import test
+
+
+class ExampleTests(test.TestCase):
+ """Functional tests for running examples."""
+
+ def test_common(self):
+ # NOTE(stevemar): If an examples has a non-zero return
+ # code, then execute will raise an error by default.
+ test.execute('python', test.EXAMPLE_DIR + '/common.py --debug')