def setup(self):
     self.folder = translatepath('special://addon/resources/lib/tests')
     setPathRW(self.folder)
     watchdogSettings = [{
         'folder': self.folder,
         'patterns': '*',
         'ignore_patterns': '',
         'ignore_directories': True,
         'recursive': False,
         'key': 'E1'
     }]
     self.dispatcher = Dispatcher()
     self.subscriber = testSubscriber()
     self.topic = Topic('onFileSystemChange', 'E1')
     self.subscriber.addTopic(self.topic)
     self.dispatcher.addSubscriber(self.subscriber)
     settings = Settings()
     flexmock(settings, getWatchdogSettings=watchdogSettings)
     self.publisher = WatchdogPublisher(self.dispatcher, settings)
     self.dispatcher.start()
 def setup(self):
     self.folder = translatepath('special://addon/resources/lib/tests')
     setPathRW(self.folder)
     watchdogSettings = [{'folder':self.folder, 'patterns':'*', 'ignore_patterns':'', 'ignore_directories':True,
                         'recursive':False, 'key':'E1'}]
     self.dispatcher = Dispatcher()
     self.subscriber = testSubscriber()
     self.topic = Topic('onFileSystemChange','E1')
     self.subscriber.addTopic(self.topic)
     self.dispatcher.addSubscriber(self.subscriber)
     settings = Settings()
     flexmock(settings, getWatchdogSettings=watchdogSettings)
     self.publisher = WatchdogPublisher(self.dispatcher, settings)
     self.dispatcher.start()
 def setup(self):
     self.folder = translatepath("special://addon/resources/lib/tests")
     setPathRW(self.folder)
     watchdogSettings = [
         {
             "folder": self.folder,
             "patterns": "*",
             "ignore_patterns": "",
             "ignore_directories": True,
             "recursive": False,
             "key": "E1",
         }
     ]
     self.dispatcher = Dispatcher()
     self.subscriber = MockSubscriber()
     self.topic = Topic("onFileSystemChange", "E1")
     self.subscriber.addTopic(self.topic)
     self.dispatcher.addSubscriber(self.subscriber)
     settings = Settings()
     flexmock(settings, getWatchdogSettings=watchdogSettings)
     self.publisher = WatchdogPublisher(self.dispatcher, settings)
     self.dispatcher.start()
class testWatchdog(object):
    def __init__(self):
        self.publisher = None
        self.dispatcher = None
        self.subscriber = None
        self.topic = None
        self.folder = None

    def setup(self):
        self.folder = translatepath('special://addon/resources/lib/tests')
        setPathRW(self.folder)
        watchdogSettings = [{
            'folder': self.folder,
            'patterns': '*',
            'ignore_patterns': '',
            'ignore_directories': True,
            'recursive': False,
            'key': 'E1'
        }]
        self.dispatcher = Dispatcher()
        self.subscriber = testSubscriber()
        self.topic = Topic('onFileSystemChange', 'E1')
        self.subscriber.addTopic(self.topic)
        self.dispatcher.addSubscriber(self.subscriber)
        settings = Settings()
        flexmock(settings, getWatchdogSettings=watchdogSettings)
        self.publisher = WatchdogPublisher(self.dispatcher, settings)
        self.dispatcher.start()

    def teardown(self):
        self.publisher.abort()
        self.dispatcher.abort()
        del self.publisher
        del self.dispatcher

    def testWatchdogPublisherCreate(self):
        fn = os.path.join(self.folder, 'test.txt')
        if os.path.exists(fn):
            os.remove(fn)
        time.sleep(1)
        self.publisher.start()
        time.sleep(1)
        with open(fn, 'w') as f:
            f.writelines('test')
        time.sleep(1)
        self.publisher.abort()
        self.dispatcher.abort()
        time.sleep(1)
        os.remove(fn)
        messages = self.subscriber.retrieveMessages()
        foundc = False
        foundm = False
        fmesgc = None
        fmesgm = None
        for message in messages:
            assert isinstance(message, Message)
            if message.kwargs['event'] == 'created':
                foundc = True
                fmesgc = message
            elif message.kwargs['event'] == 'modified':
                foundm = True
                fmesgm = message
        assert foundc is True
        assert fmesgc.topic == self.topic
        assert fmesgc.kwargs['path'] == fn
        assert foundm is True
        assert fmesgm.topic == self.topic
        assert fmesgm.kwargs['path'] == fn
        if len(messages) > 2:
            raise AssertionError(
                'Warning: Too many messages found for Watchdog Create')

    def testWatchdogPublisherDelete(self):
        fn = os.path.join(self.folder, 'test.txt')
        if os.path.exists(fn) is False:
            with open(fn, 'w') as f:
                f.writelines('test')
        time.sleep(1)
        self.publisher.start()
        time.sleep(2)
        os.remove(fn)
        time.sleep(2)
        self.publisher.abort()
        self.dispatcher.abort()
        messages = self.subscriber.retrieveMessages()
        found = False
        fmesg = None
        for message in messages:
            assert isinstance(message, Message)
            if message.kwargs['event'] == 'deleted':
                found = True
                fmesg = message
        assert found is True
        assert fmesg.topic == self.topic
        assert fmesg.kwargs['path'] == fn
        if len(messages) > 1:
            raise AssertionError(
                'Warning: Too many messages found for Watchdog Delete')

    def testWatchdogPublisherModify(self):
        fn = os.path.join(self.folder, 'test.txt')
        if os.path.exists(fn) is False:
            with open(fn, 'w') as f:
                f.writelines('test')
        time.sleep(1)
        self.publisher.start()
        time.sleep(1)
        with open(fn, 'a') as f:
            f.writelines('test2')
        time.sleep(2)
        self.publisher.abort()
        self.dispatcher.abort()
        os.remove(fn)
        messages = self.subscriber.retrieveMessages()
        found = False
        fmesg = None
        for message in messages:
            assert isinstance(message, Message)
            if message.kwargs['event'] == 'modified':
                found = True
                fmesg = message
        assert found is True
        assert fmesg.topic == self.topic
        assert fmesg.kwargs['path'] == fn
        if len(messages) > 1:
            raise AssertionError(
                'Warning: Too many messages found for Watchdog Modify')
class testWatchdog(object):
    def __init__(self):
        self.publisher = None
        self.dispatcher = None
        self.subscriber = None
        self.topic = None
        self.folder = None

    def setup(self):
        self.folder = translatepath("special://addon/resources/lib/tests")
        setPathRW(self.folder)
        watchdogSettings = [
            {
                "folder": self.folder,
                "patterns": "*",
                "ignore_patterns": "",
                "ignore_directories": True,
                "recursive": False,
                "key": "E1",
            }
        ]
        self.dispatcher = Dispatcher()
        self.subscriber = MockSubscriber()
        self.topic = Topic("onFileSystemChange", "E1")
        self.subscriber.addTopic(self.topic)
        self.dispatcher.addSubscriber(self.subscriber)
        settings = Settings()
        flexmock(settings, getWatchdogSettings=watchdogSettings)
        self.publisher = WatchdogPublisher(self.dispatcher, settings)
        self.dispatcher.start()

    def teardown(self):
        self.publisher.abort()
        self.dispatcher.abort()
        del self.publisher
        del self.dispatcher

    def testWatchdogPublisherCreate(self):
        fn = os.path.join(self.folder, "test.txt")
        if os.path.exists(fn):
            os.remove(fn)
        time.sleep(1)
        self.publisher.start()
        time.sleep(1)
        with open(fn, "w") as f:
            f.writelines("test")
        self.subscriber.waitForMessage(count=2, timeout=2)
        self.publisher.abort()
        self.dispatcher.abort()
        time.sleep(1)
        os.remove(fn)
        messages = self.subscriber.retrieveMessages()
        foundc = False
        foundm = False
        fmesgc = None
        fmesgm = None
        for message in messages:
            assert isinstance(message, Message)
            if message.kwargs["event"] == "created":
                foundc = True
                fmesgc = message
            elif message.kwargs["event"] == "modified":
                foundm = True
                fmesgm = message
        assert foundc is True
        assert fmesgc.topic == self.topic
        assert fmesgc.kwargs["path"] == fn
        assert foundm is True
        assert fmesgm.topic == self.topic, "Warning Only"
        assert fmesgm.kwargs["path"] == fn, "Warning Only"
        if len(messages) > 2:
            raise AssertionError("Warning: Too many messages found for Watchdog Create")

    def testWatchdogPublisherDelete(self):
        fn = os.path.join(self.folder, "test.txt")
        if os.path.exists(fn) is False:
            with open(fn, "w") as f:
                f.writelines("test")
        time.sleep(1)
        self.publisher.start()
        time.sleep(2)
        os.remove(fn)
        self.subscriber.waitForMessage(count=1, timeout=2)
        self.publisher.abort()
        self.dispatcher.abort()
        messages = self.subscriber.retrieveMessages()
        found = False
        fmesg = None
        for message in messages:
            assert isinstance(message, Message)
            if message.kwargs["event"] == "deleted":
                found = True
                fmesg = message
        assert found is True
        assert fmesg.topic == self.topic
        assert fmesg.kwargs["path"] == fn
        if len(messages) > 1:
            raise AssertionError("Warning: Too many messages found for Watchdog Delete")

    def testWatchdogPublisherModify(self):
        fn = os.path.join(self.folder, "test.txt")
        if os.path.exists(fn) is False:
            with open(fn, "w") as f:
                f.writelines("test")
        time.sleep(1)
        self.publisher.start()
        time.sleep(1)
        with open(fn, "a") as f:
            f.writelines("test2")
        self.subscriber.waitForMessage(count=1, timeout=2)
        self.publisher.abort()
        self.dispatcher.abort()
        os.remove(fn)
        messages = self.subscriber.retrieveMessages()
        found = False
        fmesg = None
        for message in messages:
            assert isinstance(message, Message)
            if message.kwargs["event"] == "modified":
                found = True
                fmesg = message
        assert found is True
        assert fmesg.topic == self.topic
        assert fmesg.kwargs["path"] == fn
        if len(messages) > 1:
            raise AssertionError("Warning: Too many messages found for Watchdog Modify")
class testWatchdog(object):
    def __init__(self):
        self.publisher=None
        self.dispatcher=None
        self.subscriber=None
        self.topic=None
        self.folder=None

    def setup(self):
        self.folder = translatepath('special://addon/resources/lib/tests')
        setPathRW(self.folder)
        watchdogSettings = [{'folder':self.folder, 'patterns':'*', 'ignore_patterns':'', 'ignore_directories':True,
                            'recursive':False, 'key':'E1'}]
        self.dispatcher = Dispatcher()
        self.subscriber = testSubscriber()
        self.topic = Topic('onFileSystemChange','E1')
        self.subscriber.addTopic(self.topic)
        self.dispatcher.addSubscriber(self.subscriber)
        settings = Settings()
        flexmock(settings, getWatchdogSettings=watchdogSettings)
        self.publisher = WatchdogPublisher(self.dispatcher, settings)
        self.dispatcher.start()

    def teardown(self):
        self.publisher.abort()
        self.dispatcher.abort()
        del self.publisher
        del self.dispatcher

    def testWatchdogPublisherCreate(self):
        fn = os.path.join(self.folder,'test.txt')
        if os.path.exists(fn):
            os.remove(fn)
        time.sleep(1)
        self.publisher.start()
        time.sleep(1)
        with open(fn, 'w') as f:
            f.writelines('test')
        time.sleep(1)
        self.publisher.abort()
        self.dispatcher.abort()
        time.sleep(1)
        os.remove(fn)
        messages = self.subscriber.retrieveMessages()
        foundc = False
        foundm = False
        fmesgc = None
        fmesgm = None
        for message in messages:
            assert isinstance(message, Message)
            if message.kwargs['event'] == 'created':
                foundc = True
                fmesgc = message
            elif message.kwargs['event'] == 'modified':
                foundm = True
                fmesgm = message
        assert foundc is True
        assert fmesgc.topic == self.topic
        assert fmesgc.kwargs['path'] == fn
        assert foundm is True
        assert fmesgm.topic == self.topic
        assert fmesgm.kwargs['path'] == fn
        if len(messages) > 2:
            raise AssertionError('Warning: Too many messages found for Watchdog Create')

    def testWatchdogPublisherDelete(self):
        fn = os.path.join(self.folder,'test.txt')
        if os.path.exists(fn) is False:
            with open(fn, 'w') as f:
                f.writelines('test')
        time.sleep(1)
        self.publisher.start()
        time.sleep(2)
        os.remove(fn)
        time.sleep(2)
        self.publisher.abort()
        self.dispatcher.abort()
        messages = self.subscriber.retrieveMessages()
        found = False
        fmesg = None
        for message in messages:
            assert isinstance(message, Message)
            if message.kwargs['event'] == 'deleted':
                found = True
                fmesg = message
        assert found is True
        assert fmesg.topic == self.topic
        assert fmesg.kwargs['path'] == fn
        if len(messages) > 1:
            raise AssertionError('Warning: Too many messages found for Watchdog Delete')

    def testWatchdogPublisherModify(self):
        fn = os.path.join(self.folder,'test.txt')
        if os.path.exists(fn) is False:
            with open(fn, 'w') as f:
                f.writelines('test')
        time.sleep(1)
        self.publisher.start()
        time.sleep(1)
        with open(fn, 'a') as f:
            f.writelines('test2')
        time.sleep(2)
        self.publisher.abort()
        self.dispatcher.abort()
        os.remove(fn)
        messages = self.subscriber.retrieveMessages()
        found = False
        fmesg = None
        for message in messages:
            assert isinstance(message, Message)
            if message.kwargs['event'] == 'modified':
                found = True
                fmesg = message
        assert found is True
        assert fmesg.topic == self.topic
        assert fmesg.kwargs['path'] == fn
        if len(messages) > 1:
            raise AssertionError('Warning: Too many messages found for Watchdog Modify')