--- /dev/null
+"""
+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()