Tox + Integration testing
[osm/N2VC.git] / tests / charms / layers / native-ci / reactive / native-ci.py
diff --git a/tests/charms/layers/native-ci/reactive/native-ci.py b/tests/charms/layers/native-ci/reactive/native-ci.py
new file mode 100644 (file)
index 0000000..17bf5f4
--- /dev/null
@@ -0,0 +1,44 @@
+from charmhelpers.core.hookenv import (
+    action_fail,
+    action_set,
+    action_get,
+    status_set,
+)
+from charms.reactive import (
+    clear_flag,
+    set_flag,
+    when,
+    when_not,
+)
+
+
+@when_not('native-ci.installed')
+def install_native_ci_charm():
+    set_flag('native-ci.installed')
+    status_set('active', 'Ready!')
+
+
+@when('actions.test', 'native-ci.installed')
+def test():
+    try:
+        result = True
+    except Exception as e:
+        action_fail('command failed: {}'.format(e))
+    else:
+        action_set({'output': result})
+    finally:
+        clear_flag('actions.test')
+
+
+@when('actions.testint', 'native-ci.installed')
+def testint():
+    try:
+        # Test the value is an int by performing a mathmatical operation on it.
+        intval = action_get('intval')
+        intval = intval + 1
+    except Exception as e:
+        action_fail('command failed: {}'.format(e))
+    else:
+        action_set({'output': intval})
+    finally:
+        clear_flag('actions.testint')