TestServerMonitor.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from __future__ import division
  2. import unittest
  3. from monitor import Env, DetailProcess, ProcessCounter, Sandbox
  4. import monitor
  5. import os
  6. import json
  7. from utils.workers import Top, Learner
  8. from multiprocessing import Lock
  9. path = os.environ['MONITOR_CONFIG_PATH']
  10. f = open(path)
  11. CONFIG = json.loads( f.read())
  12. f.close()
  13. class TestMonitorServer(unittest.TestCase):
  14. def test_Environment(self):
  15. """
  16. This test case is designed to test the existance of a resource set as an environment variable. This applies to files, folders (not values)
  17. """
  18. p = Env()
  19. p.init(['PATH','HOME','SHELL'])
  20. r = p.composite()
  21. value = r['value']
  22. self.assertTrue(value > 0 and value >= (100*2/3),value)
  23. self.assertTrue(p.evaluate('PATH') == 0)
  24. def test_RunningProcess(self):
  25. p = DetailProcess()
  26. p.init(['kate','firefox']) #['rabbitmq-server','python','apache2','firefox'])
  27. r = p.composite()
  28. self.assertTrue(r)
  29. def test_ProcessCount(self):
  30. p= ProcessCounter()
  31. p.init(['foo','apache2','VBoxClient','rabbitmq-server','python'])
  32. r = p.composite()
  33. self.assertTrue( sum(r.values()) > 0 )
  34. self.assertTrue( r['foo'] == 0)
  35. def test_VirtualEnv(self):
  36. requirements_path = os.sep.join([os.environ['PYTHONPATH'],"..","requirements.txt"])
  37. sandbox_path = os.sep.join([os.environ['PYTHONPATH'],"..",'sandbox'])
  38. p = Sandbox()
  39. p.init({"sandbox":sandbox_path,"requirements":requirements_path})
  40. p.composite()
  41. def test_StartTop(self):
  42. lock = Lock()
  43. p = Top(CONFIG,lock)
  44. p.start()
  45. p.join()
  46. if __name__ == '__main__' :
  47. unittest.main()