ppf/new: Add test module for top.py. Add test methods for EnhanceSwarmDescription.
authorMariana Mărășoiu <mariana.marasoiu@gmail.com>
Thu, 15 Sep 2011 21:56:57 +0000 (00:56 +0300)
committerMariana Mărășoiu <mariana.marasoiu@gmail.com>
Thu, 15 Sep 2011 21:56:57 +0000 (00:56 +0300)
ppf/new/tests/test_top.py [new file with mode: 0644]

diff --git a/ppf/new/tests/test_top.py b/ppf/new/tests/test_top.py
new file mode 100644 (file)
index 0000000..97091eb
--- /dev/null
@@ -0,0 +1,72 @@
+"""
+Test suite for top methods. Uses unittest module.
+
+2011, Mariana Marasoiu, mariana.marasoiu@gmail.com
+"""
+
+import unittest
+import os
+import os.path
+import datetime
+import sys
+import MySQLdb
+import subprocess
+
+import config
+import storage
+import top
+
+class EnhanceSwarmDescriptionTest(unittest.TestCase):
+
+    """Test suite for enhance_swarm_description method in top.py."""
+
+    # Class specific variables. Initialized in setUp, used throughout tests.
+    config_file = "config.sample.ini"
+    access_file = "access.sample.ini"
+    sd = None
+    sw = None
+    expected_swarm_id = 0
+    expected_session_ids = []
+
+    def get_swarm_id(self):
+        sections = self.sd.data.sections()
+        session = sections[0]
+        session_items = dict(self.sd.data.items(session))
+        return int(session_items['swarm_id'])
+
+    def get_session_ids(self):
+        session_names = self.sd.data.sections()
+        session_names.remove('swarm')
+        session_ids = []
+        for session in session_names:
+            session_items = dict(self.sd.data.items(session))
+            session_ids.append(int(session_items['client_session_id']))
+        return session_ids
+
+    def setUp(self):
+        # Initialize SwarmDescription and AccessConfig instances
+        config_file_path = os.path.join(os.path.dirname(__file__),
+                                        self.config_file)
+        access_file_path = os.path.join(os.path.dirname(__file__),
+                                        self.access_file)
+        self.sd = config.SwarmDescription()
+        self.sd.load(config_file_path)
+        self.ac = config.AccessConfig()
+        self.ac.load(access_file_path)
+        self.sw = self.ac.get_swarm_writer()
+        self.expected_session_ids = [3, 4, 5, 6]
+        self.expected_swarm_id = 3
+
+    def test_correct_swarm_id(self):
+        top.enhance_swarm_description(self.sd, self.sw)
+        swarm_id = self.get_swarm_id()
+        self.assertEqual(swarm_id, self.expected_swarm_id)
+
+    def test_correct_session_id(self):
+        top.enhance_swarm_description(self.sd, self.sw)
+        session_ids = self.get_session_ids()
+        self.assertEqual(session_ids, self.expected_session_ids)
+
+
+if __name__ == "__main__":
+    unittest.main()