def setUp(self): super(ExternalSchedulerApiTestBatchMode, self).setUp() base = { 'address': u'http://localhost:1', 'id': u'foo', 'dimensions': ['key1:value1', 'key2:value2'], 'all_dimensions': None, 'any_dimensions': None, 'enabled': True, 'allow_es_fallback': True, } self.cfg_foo = pools_config.ExternalSchedulerConfig(**base) base['id'] = u'hoe' self.cfg_hoe = pools_config.ExternalSchedulerConfig(**base) self.mock(external_scheduler, '_get_client', self._get_client) self._enqueue_orig = self.mock(utils, 'enqueue_task', self._enqueue) self._client = None # Setup the backend to handle task queues. self.app = webtest.TestApp(handlers_backend.create_application(True), extra_environ={ 'REMOTE_ADDR': self.source_ip, 'SERVER_SOFTWARE': os.environ['SERVER_SOFTWARE'], }) self.cfg = config.settings() self.cfg.enable_batch_es_notifications = True self.mock(config, 'settings', lambda: self.cfg)
def setUp(self): super(ExternalSchedulerApiTest, self).setUp() self.es_cfg = pools_config.ExternalSchedulerConfig( address=u'http://localhost:1', id=u'foo', dimensions=['key1:value1', 'key2:value2'], all_dimensions=None, any_dimensions=None, enabled=True, allow_es_fallback=True) # Make the values deterministic. self.mock_now(datetime.datetime(2014, 1, 2, 3, 4, 5, 6)) self.mock(random, 'getrandbits', lambda _: 0x88) # Use the local fake client to external scheduler.. self.mock(external_scheduler, '_get_client', self._get_client) self._client = None # Setup the backend to handle task queues. self.app = webtest.TestApp(handlers_backend.create_application(True), extra_environ={ 'REMOTE_ADDR': self.source_ip, 'SERVER_SOFTWARE': os.environ['SERVER_SOFTWARE'], }) self._enqueue_orig = self.mock(utils, 'enqueue_task', self._enqueue) cfg = config.settings() cfg.enable_batch_es_notifications = False self.mock(config, 'settings', lambda: cfg)
def test_get_pool_config(self): self.mock_config(TEST_CONFIG) self.assertEqual(None, pools_config.get_pool_config('unknown')) expected1 = pools_config.init_pool_config( name=u'pool_name', rev='rev', scheduling_users=frozenset([ auth.Identity('user', '*****@*****.**'), auth.Identity('user', '*****@*****.**'), ]), scheduling_groups=frozenset([u'group2', u'group1']), trusted_delegatees={ auth.Identity('user', '*****@*****.**'): pools_config.TrustedDelegatee( peer_id=auth.Identity('user', '*****@*****.**'), required_delegation_tags=frozenset([u'k:tag1', u'k:tag2']), ), }, service_accounts=frozenset([u'*****@*****.**', u'*****@*****.**']), service_accounts_groups=(u'accounts_group1', u'accounts_group2'), realm='test:pool/realm', enforced_realm_permissions=frozenset( [realms_pb2.REALM_PERMISSION_POOLS_CREATE_TASK]), default_isolate=pools_config.IsolateServer( server='https://isolate.server.example.com', namespace='default-gzip', ), default_cipd=pools_config.CipdServer( server='https://cipd.server.example.com', package_name='some-cipd-client', client_version='latest', ), external_schedulers=(pools_config.ExternalSchedulerConfig( address=u'externalscheduler.google.com', id=u'ext1', dimensions=frozenset(['key2:value2', 'key1:value1']), all_dimensions=frozenset(), any_dimensions=frozenset(), enabled=True, allow_es_fallback=True, ), ), ) expected2 = expected1._replace(name='another_name') self.assertEqual(expected1, pools_config.get_pool_config('pool_name')) self.assertEqual(expected2, pools_config.get_pool_config('another_name')) self.assertEqual(['another_name', 'pool_name'], pools_config.known())