コード例 #1
0
    def test_on_created(self):
        """Test _servers.ServersWatch._on_created."""
        # Access protected module
        # pylint: disable=W0212
        dirwatcher = dirwatch.DirWatcher()
        dispatcher = dirwatch.DirWatcherDispatcher(dirwatcher)

        added_servers = set()

        def _server_added(server_info):
            added_servers.add(server_info['hostname'])

        watch = servers.ServersWatch(dispatcher, self.root, 'partition1',
                                     _server_added)
        watch.sync()

        path = os.path.join(self.servers_dir, 'server1.ad.com')
        with io.open(path, 'w') as f:
            yaml.dump(
                {
                    servers.DC_KEY: 'dc.ad.com',
                    servers.DN_KEY: 'CN=server1,DC=AD,DC=COM',
                    'partition': 'partition1'
                }, f)

        watch._on_created(path)

        self.assertEqual(added_servers, set(['server1.ad.com']))
コード例 #2
0
    def test_sync(self):
        """Test _servers.ServersWatch.sync."""
        with io.open(os.path.join(self.servers_dir, 'server1.ad.com'),
                     'w') as f:
            yaml.dump({
                servers.DC_KEY: 'dc.ad.com',
                servers.DN_KEY: 'CN=server1,DC=AD,DC=COM',
                'partition': 'partition1'
            }, f)

        with io.open(os.path.join(self.servers_dir, 'server2.ad.com'),
                     'w') as f:
            yaml.dump({
                servers.DC_KEY: 'dc.ad.com',
                servers.DN_KEY: 'CN=server2,DC=AD,DC=COM',
                'partition': 'partition1'
            }, f)

        with io.open(os.path.join(self.servers_dir, 'server3.ad.com'),
                     'w') as f:
            yaml.dump({
                servers.DC_KEY: 'dc.ad.com',
                servers.DN_KEY: 'CN=server3,DC=AD,DC=COM',
                'partition': 'partition2'
            }, f)

        with io.open(os.path.join(self.servers_dir, 'server3.other.com'),
                     'w') as f:
            yaml.dump({
                'a': '1',
                'b': '2',
                'partition': 'partition1'
            }, f)

        dirwatcher = dirwatch.DirWatcher()
        dispatcher = dirwatch.DirWatcherDispatcher(dirwatcher)

        added_servers = set()

        def _server_added(server_info):
            added_servers.add(server_info['hostname'])

        watch = servers.ServersWatch(dispatcher, self.root, 'partition1',
                                     _server_added)
        watch.sync()

        self.assertEqual(added_servers, set(['server1.ad.com',
                                             'server2.ad.com']))

        server_info = watch.get_server_info('server1.ad.com')
        self.assertEqual(server_info[servers.DN_KEY],
                         'CN=server1,DC=AD,DC=COM')

        self.assertEqual(2, len(watch.get_all_server_info()))
コード例 #3
0
    def test_on_modified(self):
        """Test _servers.ServersWatch._on_modified."""
        # Access protected module
        # pylint: disable=W0212
        path = os.path.join(self.servers_dir, 'server1.ad.com')
        with io.open(path, 'w') as f:
            yaml.dump(
                {
                    servers.DC_KEY: 'dc.ad.com',
                    servers.DN_KEY: 'CN=server1,DC=AD,DC=COM',
                    'partition': 'partition1'
                }, f)

        dirwatcher = dirwatch.DirWatcher()
        dispatcher = dirwatch.DirWatcherDispatcher(dirwatcher)

        added_servers = set()

        def _server_added(server_info):
            added_servers.add(server_info[servers.DC_KEY])

        watch = servers.ServersWatch(dispatcher, self.root, 'partition1',
                                     _server_added)
        watch.sync()

        self.assertEqual(added_servers, set(['dc.ad.com']))

        server_info = watch.get_server_info('server1.ad.com')
        self.assertEqual(server_info[servers.DC_KEY], 'dc.ad.com')

        with io.open(path, 'w') as f:
            yaml.dump(
                {
                    servers.DC_KEY: 'dc2.ad.com',
                    servers.DN_KEY: 'CN=server1,DC=AD,DC=COM',
                    'partition': 'partition1'
                }, f)

        watch._on_modified(path)

        # server_added was not called a second time
        self.assertEqual(added_servers, set(['dc.ad.com']))

        server_info = watch.get_server_info('server1.ad.com')
        self.assertEqual(server_info[servers.DC_KEY], 'dc2.ad.com')