/components/tools/OmeroFS/test/monitor.py

https://github.com/cneves/openmicroscopy
Python | 73 lines | 49 code | 15 blank | 9 comment | 1 complexity | 7df460934cf9de8f65b7728730aab5f6 MD5 | raw file
  1. #!/usr/bin/env python
  2. """
  3. Unit tests for the directory timeout logic.
  4. Copyright 2009 Glencoe Software, Inc. All rights reserved.
  5. Use is subject to license terms supplied in LICENSE.txt
  6. """
  7. import unittest, logging, threading, time
  8. logging.basicConfig(level=logging.INFO)
  9. import omero
  10. import omero.all
  11. import omero.grid.monitors as monitors
  12. from fsDropBoxMonitorClient import *
  13. from drivers import *
  14. from path import path
  15. class TestMonitor(unittest.TestCase):
  16. def tearDown(self):
  17. MockMonitor.static_stop()
  18. def testBadId(self):
  19. self.assertRaises(omero.ApiUsageException, MockMonitor().fsEventHappened, 'foo', [])
  20. def testBadFileId(self):
  21. # Could cause infinite loop
  22. self.assertRaises(omero.ApiUsageException, MockMonitor().fsEventHappened, '',[monitors.EventInfo()])
  23. def testEmptyAdd(self):
  24. MockMonitor().fsEventHappened('',[]) # Does nothing.
  25. def testBasicAdd(self):
  26. self.driver.add(DirInfoEvent(1, monitors.EventInfo(self.dir / "r"/ "root" / "dirtimeout", monitors.EventType.Create)))
  27. self.driver.run()
  28. testBasicAdd = with_driver(testBasicAdd)
  29. def testWithSingleImport(self):
  30. f = self.dir / "r"/ "root" / "file"
  31. self.client.files = {str(f):[str(f)]}
  32. self.driver.add(DirInfoEvent(0, monitors.EventInfo(self.dir / "r"/ "root" / "file", monitors.EventType.Create)))
  33. self.driver.run()
  34. time.sleep(0.25)
  35. testWithSingleImport = with_driver(testWithSingleImport)
  36. def testWithMultiImport(self):
  37. f1 = str(self.dir / "r"/ "root" / "file1")
  38. f2 = str(self.dir / "r"/ "root" / "file2")
  39. f3 = str(self.dir / "r"/ "root" / "file3")
  40. f4 = str(self.dir / "r"/ "root" / "file4")
  41. self.client.files = {f1:[f1,f2,f3,f4]}
  42. self.client.setDirImportWait(1)
  43. self.driver.add(DirInfoEvent(0.0, monitors.EventInfo(f1, monitors.EventType.Create)))
  44. self.driver.add(DirInfoEvent(100, monitors.EventInfo(f2, monitors.EventType.Create)))
  45. self.driver.add(DirInfoEvent(200, monitors.EventInfo(f3, monitors.EventType.Create)))
  46. self.driver.add(DirInfoEvent(300, monitors.EventInfo(f4, monitors.EventType.Create)))
  47. time.sleep(1)
  48. self.driver.run()
  49. testWithMultiImport = with_driver(testWithMultiImport)
  50. def testDirectoryInDirectory(self):
  51. self.driver.add(DirInfoEvent(1, monitors.EventInfo(self.dir / "r"/ "root" / "dir", monitors.EventType.Create)))
  52. self.driver.add(DirInfoEvent(1, monitors.EventInfo(self.dir / "r"/ "root" / "dir" / "dir", monitors.EventType.Create)))
  53. self.driver.run()
  54. testDirectoryInDirectory = with_driver(testDirectoryInDirectory)
  55. if __name__ == '__main__':
  56. unittest.main()