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

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