From 4f9f3157b93984e19b5bfdc9d026c59e824fac7f Mon Sep 17 00:00:00 2001
From: Samuel Gaist <samuel.gaist@idiap.ch>
Date: Thu, 11 Jul 2019 09:48:57 +0200
Subject: [PATCH] [test][algorithm] Add loop/loop_user loading tests

---
 beat/backend/python/test/test_algorithm.py | 50 ++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/beat/backend/python/test/test_algorithm.py b/beat/backend/python/test/test_algorithm.py
index 31c1197..a74092c 100644
--- a/beat/backend/python/test/test_algorithm.py
+++ b/beat/backend/python/test/test_algorithm.py
@@ -325,6 +325,56 @@ class TestAutonomousAPI_Loading(unittest.TestCase):
 # ----------------------------------------------------------
 
 
+class TestLoopAPI_Loading(unittest.TestCase):
+    def test_load_valid_algorithm(self):
+        algorithm = Algorithm(prefix, "autonomous/loop/1")
+        self.assertEqual(algorithm.name, "autonomous/loop/1")
+        self.assertTrue(algorithm.valid)
+
+        self.assertFalse(algorithm.errors)
+        self.assertFalse(algorithm.results)  # it is not an analyzer
+        self.assertTrue(algorithm.parameters)
+        self.assertTrue(algorithm.input_map)
+        self.assertTrue(algorithm.output_map)
+        self.assertEqual(algorithm.schema_version, 3)
+        self.assertEqual(algorithm.api_version, 2)
+        self.assertEqual(algorithm.type, Algorithm.LOOP)
+
+        runnable = algorithm.runner()
+        self.assertFalse(runnable.ready)
+        self.assertTrue(
+            runnable.prepared
+        )  # loop/1 has no prepare method so is prepared
+
+
+# ----------------------------------------------------------
+
+
+class TestLoopUserAPI_Loading(unittest.TestCase):
+    def test_load_valid_algorithm(self):
+        algorithm = Algorithm(prefix, "autonomous/loop_user/1")
+        self.assertEqual(algorithm.name, "autonomous/loop_user/1")
+        self.assertTrue(algorithm.valid)
+
+        self.assertFalse(algorithm.errors)
+        self.assertFalse(algorithm.results)  # it is not an analyzer
+        self.assertFalse(algorithm.parameters)  # loop_user/1 has no parameter
+        self.assertTrue(algorithm.input_map)
+        self.assertTrue(algorithm.output_map)
+        self.assertEqual(algorithm.schema_version, 3)
+        self.assertEqual(algorithm.api_version, 2)
+        self.assertEqual(algorithm.type, Algorithm.AUTONOMOUS_LOOP_USER)
+
+        runnable = algorithm.runner()
+        self.assertTrue(runnable.ready)  # loop_user/1 has no setup method so is ready
+        self.assertTrue(
+            runnable.prepared
+        )  # loop/1 has no prepare method so is prepared
+
+
+# ----------------------------------------------------------
+
+
 class TestLegacyAPI_Setup(unittest.TestCase):
     def __init__(self, methodName="runTest"):
         super(TestLegacyAPI_Setup, self).__init__(methodName)
-- 
GitLab