Example #1
0
class TestWatchDogLimits(unittest.TestCase):

    def setUp(self):
        # Given
        self.observer = Observer()
        self.event_handler = CountEventHandler()
        self.tempdir = os.path.realpath(tempfile.mkdtemp())

    def _start_observer(self):
        if is_darwin():
            time.sleep(10)
        self.observer.schedule(self.event_handler, self.tempdir, recursive=True)
        self.observer.start()

    def tearDown(self):
        self.observer.stop()
        # Clean
        delete_dir(self.tempdir)

    def recurive_arborescence_test(self):
        # Given
        last_dir_created = create_recursive_arborescence(self.tempdir, 80)

        # When
        self._start_observer()
        create_new_file_in_dir(last_dir_created)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_event_at(-2), FileCreatedEvent)
Example #2
0
 def setUp(self):
     # Given
     self.observer = Observer()
     self.event_handler = CountEventHandler()
     self.tempdir = os.path.realpath(tempfile.mkdtemp())
Example #3
0
 def setUp(self):
     # Given
     self.observer = Observer()
     self.event_handler = CountEventHandler(ignore_patterns=["*.DS_Store"])
     self.tempdir = os.path.realpath(tempfile.mkdtemp())
Example #4
0
class TestWatchDog(unittest.TestCase):

    def setUp(self):
        # Given
        self.observer = Observer()
        self.event_handler = CountEventHandler(ignore_patterns=["*.DS_Store"])
        self.tempdir = os.path.realpath(tempfile.mkdtemp())

    def _start_observer(self):
        if is_darwin():
            time.sleep(10)
        self.observer.schedule(self.event_handler, self.tempdir, recursive=True)
        self.observer.start()

    def tearDown(self):
        self.observer.stop()
        # Clean
        delete_dir(self.tempdir)

    @attr(slow=True)
    def test_watching_an_empty_diretory_just_created(self):
        # When
        self._start_observer()

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 0)

    @attr(slow=True)
    def test_on_created_with_ignore_pattern(self):
        # Given
        file_path = os.path.join(self.tempdir, ".DS_Store")

        # When
        self._start_observer()
        create_new_file(file_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 1)
        self.assertIsInstance(self.event_handler.get_event_at(0), DirModifiedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_file_creation(self):
        # Given
        file_path = os.path.join(self.tempdir, str(uuid.uuid4()))

        # When
        self._start_observer()
        create_new_file(file_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_event_at(-2), FileCreatedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_directory_creation(self):
        # Given
        dir_path = os.path.join(self.tempdir, str(uuid.uuid4()))

        # When
        self._start_observer()
        create_new_dir(dir_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_last_event(), DirCreatedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_file_modification(self):
        # Given
        file_path = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_file(file_path)
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        add_random_content_to_file(file_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 1)
        self.assertIsInstance(self.event_handler.get_last_event(), FileModifiedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_file_deletion(self):
        # Given
        file_path = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_file(file_path)
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        delete_file(file_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_event_at(-2), FileDeletedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_directory_move(self):
        # Given
        dir_path_src = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_dir(dir_path_src)
        dir_path_dest = os.path.join(self.tempdir, str(uuid.uuid4()))
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        move_dir(dir_path_src, dir_path_dest)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_last_event(), DirMovedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_directory_deletion(self):
        # Given
        dir_path = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_dir(dir_path)
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        delete_dir(dir_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_event_at(-2), DirDeletedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_file_move(self):
        # Given
        file_path_src = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_file(file_path_src)
        file_path_dest = os.path.join(self.tempdir, str(uuid.uuid4()))
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        move_file(file_path_src, file_path_dest)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_event_at(-2), FileMovedEvent)

    @attr(slow=True)
    def test_i_can_detect_when_a_dir_is_moved(self):
        # Given
        dir_name = create_random_dir()
        create_new_file_in_dir(dir_name)
        create_new_file_in_dir(dir_name)

        # When
        self._start_observer()
        shutil.move(dir_name, self.tempdir)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 4)
        self.assertIsInstance(self.event_handler.get_event_at(0), FileCreatedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(1), FileCreatedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(2), DirModifiedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(3), DirCreatedEvent)

    @attr(slow=True)
    def test_i_can_detect_when_a_dir_is_copied(self):
        # Given
        dir_name = create_random_dir()
        create_new_file_in_dir(dir_name)
        create_new_file_in_dir(dir_name)

        # When
        self._start_observer()
        copy_dir(dir_name, self.tempdir)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 4)
        self.assertIsInstance(self.event_handler.get_event_at(0), FileCreatedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(1), FileCreatedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(2), DirModifiedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(3), DirCreatedEvent)
Example #5
0
 def setUp(self):
     # Given
     self.observer = Observer()
     self.event_handler = CountEventHandler(ignore_patterns=["*.DS_Store"])
     self.tempdir = os.path.realpath(tempfile.mkdtemp())
Example #6
0
class TestWatchDog(unittest.TestCase):
    def setUp(self):
        # Given
        self.observer = Observer()
        self.event_handler = CountEventHandler(ignore_patterns=["*.DS_Store"])
        self.tempdir = os.path.realpath(tempfile.mkdtemp())

    def _start_observer(self):
        if is_darwin():
            time.sleep(10)
        self.observer.schedule(self.event_handler,
                               self.tempdir,
                               recursive=True)
        self.observer.start()

    def tearDown(self):
        self.observer.stop()
        # Clean
        delete_dir(self.tempdir)

    @attr(slow=True)
    def test_watching_an_empty_diretory_just_created(self):
        # When
        self._start_observer()

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 0)

    @attr(slow=True)
    def test_on_created_with_ignore_pattern(self):
        # Given
        file_path = os.path.join(self.tempdir, ".DS_Store")

        # When
        self._start_observer()
        create_new_file(file_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 1)
        self.assertIsInstance(self.event_handler.get_event_at(0),
                              DirModifiedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_file_creation(self):
        # Given
        file_path = os.path.join(self.tempdir, str(uuid.uuid4()))

        # When
        self._start_observer()
        create_new_file(file_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_event_at(-2),
                              FileCreatedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_directory_creation(self):
        # Given
        dir_path = os.path.join(self.tempdir, str(uuid.uuid4()))

        # When
        self._start_observer()
        create_new_dir(dir_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_last_event(),
                              DirCreatedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_file_modification(self):
        # Given
        file_path = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_file(file_path)
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        add_random_content_to_file(file_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 1)
        self.assertIsInstance(self.event_handler.get_last_event(),
                              FileModifiedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_file_deletion(self):
        # Given
        file_path = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_file(file_path)
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        delete_file(file_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_event_at(-2),
                              FileDeletedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_directory_move(self):
        # Given
        dir_path_src = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_dir(dir_path_src)
        dir_path_dest = os.path.join(self.tempdir, str(uuid.uuid4()))
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        move_dir(dir_path_src, dir_path_dest)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_last_event(),
                              DirMovedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_directory_deletion(self):
        # Given
        dir_path = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_dir(dir_path)
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        delete_dir(dir_path)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_event_at(-2),
                              DirDeletedEvent)

    @attr(slow=True)
    def test_i_can_detect_a_file_move(self):
        # Given
        file_path_src = os.path.join(self.tempdir, str(uuid.uuid4()))
        create_new_file(file_path_src)
        file_path_dest = os.path.join(self.tempdir, str(uuid.uuid4()))
        time.sleep(WAIT_TIME)

        # When
        self._start_observer()
        move_file(file_path_src, file_path_dest)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 2)
        self.assertIsInstance(self.event_handler.get_event_at(-2),
                              FileMovedEvent)

    @attr(slow=True)
    def test_i_can_detect_when_a_dir_is_moved(self):
        # Given
        dir_name = create_random_dir()
        create_new_file_in_dir(dir_name)
        create_new_file_in_dir(dir_name)

        # When
        self._start_observer()
        shutil.move(dir_name, self.tempdir)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 4)
        self.assertIsInstance(self.event_handler.get_event_at(0),
                              FileCreatedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(1),
                              FileCreatedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(2),
                              DirModifiedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(3),
                              DirCreatedEvent)

    @attr(slow=True)
    def test_i_can_detect_when_a_dir_is_copied(self):
        # Given
        dir_name = create_random_dir()
        create_new_file_in_dir(dir_name)
        create_new_file_in_dir(dir_name)

        # When
        self._start_observer()
        copy_dir(dir_name, self.tempdir)
        time.sleep(WAIT_TIME)

        # Then
        self.assertEqual(self.event_handler.get_number_of_events_received(), 4)
        self.assertIsInstance(self.event_handler.get_event_at(0),
                              FileCreatedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(1),
                              FileCreatedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(2),
                              DirModifiedEvent)
        self.assertIsInstance(self.event_handler.get_event_at(3),
                              DirCreatedEvent)