def test_helper_types(): binding_helper.unregister_all() BindingHelper.register(UncachedHelper()) BindingHelper.register(CachedHelper()) uncached_helper = binding_helper._BINDING_HELPERS[0] cached_helper = binding_helper._BINDING_HELPERS[1] def smoke_test(): cfg = write_and_load_config(role='john_doe') binding_helper.apply_all(cfg) assert cfg.task( 0).processes()[0].cmdline().get() == 'U(hello) C(hello)' assert cfg.task( 0).processes()[1].cmdline().get() == 'U(hello) C(hello)' # initially everything uncached (also -- multiple symbols result in a single bind) smoke_test() assert uncached_helper.binds == 1 assert cached_helper.binds == 1 assert cached_helper.uncached_binds == 1 # cached helper is warm, should no longer have uncached binds smoke_test() assert uncached_helper.binds == 2 assert cached_helper.binds == 2 assert cached_helper.uncached_binds == 1 # flush cache and validate miss binding_helper.clear_binding_caches() smoke_test() assert uncached_helper.binds == 3 assert cached_helper.binds == 3 assert cached_helper.uncached_binds == 2
def test_helper_types(): binding_helper.unregister_all() BindingHelper.register(UncachedHelper()) BindingHelper.register(CachedHelper()) uncached_helper = binding_helper._BINDING_HELPERS[0] cached_helper = binding_helper._BINDING_HELPERS[1] def smoke_test(): cfg = write_and_load_config(role='john_doe') binding_helper.apply_all(cfg) assert cfg.task(0).processes()[0].cmdline().get() == 'U(hello) C(hello)' assert cfg.task(0).processes()[1].cmdline().get() == 'U(hello) C(hello)' # initially everything uncached (also -- multiple symbols result in a single bind) smoke_test() assert uncached_helper.binds == 1 assert cached_helper.binds == 1 assert cached_helper.uncached_binds == 1 # cached helper is warm, should no longer have uncached binds smoke_test() assert uncached_helper.binds == 2 assert cached_helper.binds == 2 assert cached_helper.uncached_binds == 1 # flush cache and validate miss binding_helper.clear_binding_caches() smoke_test() assert uncached_helper.binds == 3 assert cached_helper.binds == 3 assert cached_helper.uncached_binds == 2
def before_execution(self, context): # register usable backends sacker_ledger.register_ledger('s3', S3Ledger) sacker_ledger.register_ledger('dynamo', DynamoLedger) sacker_store.register_store('s3', S3Store) # register schema AuroraConfigLoader.register_schema(sacker_schema) # register binding helper BindingHelper.register(SackerBindingHelper())
def test_registry(): binding_helper.unregister_all() assert len(binding_helper._BINDING_HELPERS) == 0 BindingHelper.register(UncachedHelper()) assert len(binding_helper._BINDING_HELPERS) == 1 BindingHelper.register(CachedHelper()) assert len(binding_helper._BINDING_HELPERS) == 2 binding_helper.unregister_all() assert len(binding_helper._BINDING_HELPERS) == 0
def test_docker_binding_throws(self, mock_resolve): mock_resolve.side_effect = Exception('mock resolve failure') binding_helper.unregister_all() BindingHelper.register(DockerBindingHelper()) with temporary_file() as fp: fp.write(DOCKER_BINDING_CONFIG) fp.flush() with CLUSTERS.patch(TEST_CLUSTERS): cfg = AuroraConfig.load(fp.name) with pytest.raises(Exception): binding_helper.apply_all(cfg) assert mock_resolve.mock_calls == [call(TEST_CLUSTER, 'some/name', 'some.tag')]
def test_docker_binding(self, mock_resolve): image_reference = 'registry.example.com/some/repo@some:digest' mock_resolve.return_value = image_reference binding_helper.unregister_all() BindingHelper.register(DockerBindingHelper()) with temporary_file() as fp: fp.write(DOCKER_BINDING_CONFIG) fp.flush() with CLUSTERS.patch(TEST_CLUSTERS): cfg = AuroraConfig.load(fp.name) binding_helper.apply_all(cfg) assert cfg.job().taskConfig.container.docker.image == image_reference assert mock_resolve.mock_calls == [call(TEST_CLUSTER, 'some/name', 'some.tag')]
def test_docker_binding_throws(self, mock_resolve): mock_resolve.side_effect = Exception('mock resolve failure') binding_helper.unregister_all() BindingHelper.register(DockerBindingHelper()) with temporary_file() as fp: fp.write(DOCKER_BINDING_CONFIG) fp.flush() with CLUSTERS.patch(TEST_CLUSTERS): cfg = AuroraConfig.load(fp.name) with pytest.raises(Exception): binding_helper.apply_all(cfg) assert mock_resolve.mock_calls == [ call(TEST_CLUSTER, 'some/name', 'some.tag') ]
def test_docker_binding(self, mock_resolve): image_reference = 'registry.example.com/some/repo@some:digest' mock_resolve.return_value = image_reference binding_helper.unregister_all() BindingHelper.register(DockerBindingHelper()) with temporary_file() as fp: fp.write(DOCKER_BINDING_CONFIG) fp.flush() with CLUSTERS.patch(TEST_CLUSTERS): cfg = AuroraConfig.load(fp.name) binding_helper.apply_all(cfg) assert cfg.job( ).taskConfig.container.docker.image == image_reference assert mock_resolve.mock_calls == [ call(TEST_CLUSTER, 'some/name', 'some.tag') ]
def before_execution(self, context): BindingHelper.register(DockerBindingHelper())